init方法与viewDidLoadtypes方法
init方法中的代码types(对象分配,设置ui元素,networking调用等)与视图控制器的viewDidLoadtypes方法之间的区别的一般指导原则是什么?
初始化=>调用/用于初始化您的ViewController和初始化只为UIViewController
而不是它的意见
ViewDidLoad =>调用/用于加载视图,该方法在加载后调用nib
系统可以卸载视图来节省内存,它将单独离开UIViewController。 在init方法中设置的任何属性都不会再被应用,因为UIViewController已经被初始化了
在iOS应用程序中初始化variables是每个项目都要面对的问题。 select正确的地方来初始化variables有时可能会非常棘手。 我最近面临一个难以复制的问题,并改变了一些在我的viewDidLoad方法中初始化的variables,以及我不明白他们正在改变的variables。
在您的viewcontroller中初始化variables的可能方法是: – init – viewDidLoad – viewWillAppear – viewDidAppear
为了解释我的观点,我使用模板选项卡栏应用程序开始了一个新项目。 我在这两个视图控制器中添加了日志语句到viewDidLoad方法。 A还向第二个视图控制器添加了一个button,它将初始化一些图像,这会给我一个内存警告。
logging一些语句后,得出以下结论:
15:11:40.077 testblog2[4865:707] FirstViewController viewdidload 15:11:56.720 testblog2[4865:707] SecondViewController viewDidLoad 15:12:05.710 testblog2[4865:707] Pressed loading images button 15:12:19.025 testblog2[4865:707] Received memory warning. Level=1 15:12:21.272 testblog2[4865:707] SecondViewController didReceiveMemoryWarning
=>现在切换到第一个选项卡
15:12:30.822 testblog2[4865:707] FirstViewController viewdidload
如果您在viewDidLoad方法中初始化variables,请记住这些variables在收到内存警告后可能会重新初始化。 Cocoa将删除视图,一旦你去到特定的视图控制器,你的viewDidLoad方法将被再次触发。