Lazy Instantiator
2024-09-05 02:12:43
lazy instantiator (懒加载、延迟实例化、延迟初始化)
最开始看斯坦福的视频,对 延迟初始化 这个概念,不太理解
只见到,有些属性的初始化是在init做的,有些是在viewDidLoad做的,有些是在属性的getter方法里面做的
所谓的 延迟初始化,就是在getter方法里面做,需要此属性时才加载
而init(各自view、model)、viewDidLoad(viewcontroller)则是非延迟初始化
好处:
1、有些耗资源性能的属性,这样做可以节省资源
2、将初始化从viewDidLoad或init中剥离出来,这样能让代码更清晰
注意:
在getter做初始化前,先判断实例是否为空,为空则alloc/init一个
栗子:
通常用法,你有一个NSArray的property,但是你不在初始化方法里为其alloc/init,它就只是一个指针,不会占用内存。然后你写了此property的访问器,在访问器里判断此property的指针是否为空,若为空,就alloc/init,这时才真正生成这个NSArray。
最新文章
- iOS学习-UITextField设置placeholder的颜色
- Android随笔之——获取EditText光标所在行行号
- Kooboo CMS 之TextContent详解
- texlive2015+texstudio
- shodan:黑客搜索引擎
- 用bat使用date和time命令
- Xcode8 - apploader 上传失败 - ERROR ITMS-90168: ";The binary you uploaded was invalid.";
- nc 命令汇总
- unix网络编程笔记
- bash下几个替换运算符的区分
- iOS开发笔记17:自定义相机拍照
- jQuery选择器(内容过滤选择器)第四节
- 如何写一个SSH项目(一)程序设计大体思路
- Big Event in HDU(多重背包套用模板)
- react-native shadow失效
- 使用sql语句比较excel中数据的不同
- select2中的ajax请求
- css实现三角形标
- VS2010使用Release进行调试的三个必须设置选项
- 使用SqlBulkCopy类实现导入excel表格
热门文章
- unity3d项目文件目录发布后,对应的ios/android应用目录
- Codevs 1961 躲避大龙
- Optimized fragmentation improves the identification of peptides cross-linked by MS-cleavable reagents (文献分享一组-张宇星)
- IT兄弟连 JavaWeb教程 JSP内置对象1
- IDEA安装actiBPM插件,亲测成功!避免直接在线安装或下载jar包硬盘都会报错问题!
- Zynq7000开发系列-7(在Zybo上运行Linaro桌面系统)
- 描述符__get__,__set__,__delete__和析构方法__del__
- 牛客寒假6-D.美食
- A.出题人的RP值
- Codeforces 1139D(推式子+dp)