HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – viewDidLoad中的代码每次调用时都会运行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
大家好我正在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中的代码每次调用时都会运行所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。