哪种方法是在我的视图控制器中用于显示内容的数据结构初始化的最佳位置:
此外,对于任一情况,我应该在哪里释放它们:
init
还是viewDidLoad
?此外,对于任一情况,我应该在哪里释放它们:
dealloc
、viewDidUnload
还是didReceiveMemoryWarning
?init
还是viewDidLoad
?dealloc
、viewDidUnload
还是didReceiveMemoryWarning
?viewDidLoad
是一个很好的默认位置——你的XIB视图已经被实例化,所以你可以设置它们的属性。如果你需要大量加载和卸载视图,你可能想把纯数据推回到你的init
调用中。
viewWillAppear
是另一个选择,再次取决于你的视图生命周期以及在视图隐藏时你的数据有多少可能会发生变化。dealloc
、viewDidUnload
或viewDidDisappear
中。didReceiveMemoryWarning
应该始终卸载任何你可以卸载的东西,无论你在哪里初始化它,你的代码应该足够聪明,在它重新激活后重新加载数据。initWithNibName:bundle:
。 我倾向于稍微重新排列一下我的代码,但这是个人风格的问题 - 关键是要清楚指定的初始化程序是什么(所有其他初始化程序调用始终调用的一个方法,因此是您在init
周期中进行重要工作的地方)。 - Todd Masco