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

Objective c 在哪里初始化数据结构:init或viewDidLoad?,objective-c,ios,memory-management,Objective C,Ios,Memory Management,初始化用于在我的视图控制器中显示内容的数据结构的最佳位置是:init还是viewDidLoad 另外,对于这两种情况,我应该在哪里发布它们:dealloc、viewDidUnload或direceivememorywarning 最令人鼓舞的答案是,“它取决于您的视图生命周期。”相对于视图的加载和显示方式,每个方法都有自己的位置 不过,根据经验,viewDidLoad是一个很好的默认位置,可以先使用它-您的XIB视图已经被实例化,因此您可以设置它们的属性。如果您对视图进行大量的加载和卸载,您可能

初始化用于在我的视图控制器中显示内容的数据结构的最佳位置是:
init
还是
viewDidLoad


另外,对于这两种情况,我应该在哪里发布它们:
dealloc
viewDidUnload
direceivememorywarning

最令人鼓舞的答案是,“它取决于您的视图生命周期。”相对于视图的加载和显示方式,每个方法都有自己的位置

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

视图将出现
是另一个选项,这同样取决于视图的生命周期以及视图隐藏时数据可能发生的变化


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

对于UIViewController子类所涉及的记录,可以在
initWithNibName:bundle:
viewDidLoad
之间进行选择。Plain
init
不是这些类的指定初始值设定项。正如NJones在对上述问题的评论中提到的,通过
init
调用,我指的是指定的初始值设定项,无论它是什么-默认情况下,您的
initWithNibName:bundle:
。我倾向于重新安排我的方法,但这是个人风格的问题-关键是要弄清楚指定的初始值设定项是什么(一个方法总是被所有其他初始值设定项调用调用,因此是在
init
循环中进行繁重工作的地方)。