在我的UIViewController子类中,我应该在init或viewDidLoad中为UIPickerView初始化NSArray数据,为什么?感谢。
答案 0 :(得分:3)
我会在viewDidLoad
中调用它,因为视图可以多次加载(也可以卸载,因此您可能还需要重新加载数组)。
此外,大多数时候在iPhone上懒洋洋地加载数据是个好主意。在viewDidLoad
中加载数据比init
更加懒惰,如果您初始化,最终可能会更好地为您执行,但不要立即使用您的视图控制器。
答案 1 :(得分:2)
这取决于您打算存储数组的确切内容,以及您打算如何初始化它。可以多次调用viewDidLoad
(特别是在向程序发送低内存警告之后 - 非活动视图控制器将卸载其视图,然后在变为活动状态或再次显示时重新加载它们),而init
将通常只在对象的生命周期内被调用一次。
答案 2 :(得分:1)
在init中执行此操作的一种情况是viewDidLoad可以在viewWillAppear之后调用。如果您依赖于当时存在的数组,则可能需要将初始化放在init。
中一般来说,viewDidLoad是一个非常好的地方,只要你记住它可以不止一次被调用。