初始化一个控制器时需要注意的事情

来源:互联网 发布:沙袋绑腿 淘宝 编辑:程序博客网 时间:2024/06/06 18:50


问题一:看到很多刚开始写iOS的人,喜欢在控制器的init方法里写一些像:self.navigationItem.title = @"xxx";self.view.backgroundColor = [UIColor whiteColor];等之类的方法,很不推荐这样写,理由有二:

1,首先,从别处初始化本控制器时,刚刚init时并没有初始化出来视图什么的,只是开辟了一块小内存出来,用来记录和存储本控制器,这是为了什么时候需要什么时候再真正去实现它,从而保证了低内存。试想,如果一个控制器持有了好多其他控制器的实例(已属性的形式),那么如果都在实现状态的话,就等于创建了这么多的页面出来,显然是不能接受的。


2,其次,会导致一些其他的问题,比如:我初始化一个控制器时,需要对其传参,然后在其viewdidload里面用参数请求网络数据。如果在跳转之前的init时,就已经开始访问视图属性,那么就会走viewdidload,然而,这时还没有把参数传给本控制器,导致请求时参数为空,如果不加判断,就可能导致崩溃


综上,不建议在init方法里访问本控制器视图属性。


二:总结中。。。。

原创粉丝点击