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

NSE*_*rer 5 memory-management objective-c ios

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

此外,对于这两种情况下,我应该在哪里被释放他们:dealloc,viewDidUnloaddidReceiveMemoryWarning

Tod*_*sco 4

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

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

viewWillAppear是另一种选择,再次取决于视图的生命周期以及视图隐藏时数据可能发生的变化量。

ETA:在对分配内存的补充调用中释放内存。在dealloc,viewDidUnloadviewDidDisappear. didReceiveMemoryWarning无论您在何处初始化它,都应该始终卸载任何可以卸载的内容,并且您的代码应该足够智能,可以在数据再次处于活动状态时重新加载数据。