在哪里初始化数据结构:init或viewDidLoad?

时间:2012-01-15 03:29:39

标签: objective-c ios memory-management

哪个是初始化用于在视图控制器中显示内容的数据结构的最佳位置:initviewDidLoad

此外,对于任何一种情况,我应该在哪里发布它们:deallocviewDidUnloaddidReceiveMemoryWarning

1 个答案:

答案 0 :(得分:3)

全面的答案是,“这取决于您的观看生命周期。”每种方法都有自己相对于视图加载和显示方式的位置。

但是,根据经验,viewDidLoad是一个很好的默认位置 - 您的XIB视图已经被实例化,因此您可以设置它们的属性。如果您进行了大量的视图加载和卸载操作,您可能希望将相当静态的纯数据推送回init次调用。

viewWillAppear是另一种选择,取决于您的观点的生命周期以及隐藏视图时您的数据可能会发生多少变化。

ETA:在您分配的补充电话中释放您的记忆。在deallocviewDidUnloadviewDidDisappeardidReceiveMemoryWarning应始终卸载任何内容,无论您在何处初始化它,并且您的代码应足够智能,以便在数据再次处于活动状态时重新加载数据。