初始化一个控制器时需要注意的事情
来源:互联网 发布:沙袋绑腿 淘宝 编辑:程序博客网 时间:2024/06/06 18:50
问题一:看到很多刚开始写iOS的人,喜欢在控制器的init方法里写一些像:self.navigationItem.title = @"xxx";self.view.backgroundColor = [UIColor whiteColor];等之类的方法,很不推荐这样写,理由有二:
1,首先,从别处初始化本控制器时,刚刚init时并没有初始化出来视图什么的,只是开辟了一块小内存出来,用来记录和存储本控制器,这是为了什么时候需要什么时候再真正去实现它,从而保证了低内存。试想,如果一个控制器持有了好多其他控制器的实例(已属性的形式),那么如果都在实现状态的话,就等于创建了这么多的页面出来,显然是不能接受的。
2,其次,会导致一些其他的问题,比如:我初始化一个控制器时,需要对其传参,然后在其viewdidload里面用参数请求网络数据。如果在跳转之前的init时,就已经开始访问视图属性,那么就会走viewdidload,然而,这时还没有把参数传给本控制器,导致请求时参数为空,如果不加判断,就可能导致崩溃。
综上,不建议在init方法里访问本控制器视图属性。
二:总结中。。。。
阅读全文
0 0
- 初始化一个控制器时需要注意的事情
- #define声明时需要注意的事情
- 集合初始化需要注意的一个问题
- 装修需要注意的事情
- 开发asp.net网站时需要注意的事情
- 关于STEP7安装时需要注意的事情
- 使用java.lang.Process类时需要注意的事情
- 关于结构体初始化需要注意的一个细节
- HTML中的DOCTYPE需要注意的事情!
- 生活之中需要注意的一些事情
- iOS中需要注意的事情
- 学习建网站需要注意的事情
- 网站搬迁需要注意的事情
- 发外链需要注意的事情有哪些
- oracle设置process需要注意的事情
- lua multiple thread 需要注意的事情
- Java异常所需要注意的事情
- js 对象需要注意的事情
- DB2中多行转一列问题
- Flask-Mail的使用
- 关于数组的小练习
- PDF阅读器还是福昕阅读好
- SpringCloud学习:Eureka、Ribbon和Feign
- 初始化一个控制器时需要注意的事情
- 给 Android 开发者的 RxJava 详解
- 数据库使用学习笔记:Oracle数据库连接中Provider=OraOleDb.Oracle.1与Provider=MSDAORA什么区别
- Failover vs Failfast vs Failback vs Failsafe
- DNS 定义和选择
- Sublime Text3/2使用windows编译器编译和运行C/C++程序
- 数据库类型
- Ubuntu虚拟机网络设置
- 分享下学习Kotlin的历程-构造函数/抽象类/枚举