4

在我的 UIViewController 子类中,我应该在 init 或 viewDidLoad 中初始化 UIPickerView 的 NSArray 数据吗?为什么?谢谢。

4

3 回答 3

3

我会调用它,viewDidLoad因为视图可以多次加载(也可以卸载,因此您可能还想重新加载数组)。

此外,大多数时候在 iPhone 上懒惰地加载数据是个好主意。加载数据比 加载数据viewDidLoad要慢得多init,如果你初始化它可能最终会为你表现得更好,但不要立即使用你的视图控制器。

于 2009-08-16T23:06:58.503 回答
2

这取决于您打算存储数组的确切内容,以及您打算如何初始化它。viewDidLoad可以多次调用(尤其是在向您的程序发送内存不足警告后 - 非活动视图控制器将卸载它们的视图,然后在它们再次变为活动或可见时重新加载它们),而init通常只会在生命周期内调用一次目的。

于 2009-08-16T22:54:38.377 回答
1

在 init 中执行此操作的一种情况是 viewDidLoad 可以在 viewWillAppear 之后调用。如果您依赖当时存在的数组,则可能需要将初始化放在 init.xml 中。

一般来说,viewDidLoad 是一个很好的地方,只要你记住它可以被多次调用。

于 2009-08-17T02:33:30.747 回答