ios – viewDidLoad中的代码每次调用时都会运行

ios – viewDidLoad中的代码每次调用时都会运行,第1张

概述大家好我正在Udemy做一个课程,代码要求在viewDidLoad函数中放置代码,如下所示: override func viewDidLoad() { super.viewDidLoad() placesArray.append(["name":"Taj Mahal", "lat":"27.175607", "lon":"78.042112"])} 数组追加应该只运行一次, 大家好我正在Udemy做一个课程,代码要求在vIEwDIDLoad函数中放置代码,如下所示:

overrIDe func vIEwDIDLoad() {    super.vIEwDIDLoad()    placesArray.append(["name":"Taj Mahal","lat":"27.175607","lon":"78.042112"])}

数组追加应该只运行一次,但是,当我转到另一个vIEwController并返回时,它运行代码再次追加.所以我现在有一个有2行的数组,这两行都是Taj Mahal.

我以为vIEwDIDLoad函数只运行一次代码?

有没有解决的办法?

谢谢.

附录:
我正在使用Swift,所以在创建和启动vIEwController时我没有看到任何alloc和init.听起来很奇怪,视频教程让它在vIEwDIDLoad中工作,教练正在使用故事板从初始表视图控制器转到视图控制器上的地图视图,并且在地图视图上只有一个后退按钮通过故事板返回到表视图控制器. – 可能是因为我有最新版本的Swift语言而且教练使用的是早期版本,(因为我注意到之前编码方面略有不同),但你永远都不知道.无论何时,只要他触摸后退按钮,它就不再运行附加代码.
我试图与培训师联系,作为这里的一些建议,虽然它们很好似乎不起作用.
一旦我与培训师联系,我会把解决方案放在这里.

解决方法 视图控制器的视图完成加载时,将调用vIEwDIDLoad方法.当视图控制器的视图属性为nil且某些内容尝试访问它时,视图将加载.

UIVIEwController *myVC = [[UIVIEwController alloc] init];UIVIEw *aVIEw = myVC.vIEw; // this loads myVC's vIEw; vIEwDIDLoad is called when it completes loading.

如果视图已卸载(通常由于内存限制),则在下次访问vIEw属性时将调用该视图.

通常不应在视图方法内完成数据集的 *** 作.考虑将其移动到视图控制器的init(或不同的“数据源”类).

总结

以上是内存溢出为你收集整理的ios – viewDidLoad中的代码每次调用时都会运行全部内容,希望文章能够帮你解决ios – viewDidLoad中的代码每次调用时都会运行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1024694.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存