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。

最新文章

  1. iOS学习-UITextField设置placeholder的颜色
  2. Android随笔之——获取EditText光标所在行行号
  3. Kooboo CMS 之TextContent详解
  4. texlive2015+texstudio
  5. shodan:黑客搜索引擎
  6. 用bat使用date和time命令
  7. Xcode8 - apploader 上传失败 - ERROR ITMS-90168: "The binary you uploaded was invalid."
  8. nc 命令汇总
  9. unix网络编程笔记
  10. bash下几个替换运算符的区分
  11. iOS开发笔记17:自定义相机拍照
  12. jQuery选择器(内容过滤选择器)第四节
  13. 如何写一个SSH项目(一)程序设计大体思路
  14. Big Event in HDU(多重背包套用模板)
  15. react-native shadow失效
  16. 使用sql语句比较excel中数据的不同
  17. select2中的ajax请求
  18. css实现三角形标
  19. VS2010使用Release进行调试的三个必须设置选项
  20. 使用SqlBulkCopy类实现导入excel表格

热门文章

  1. unity3d项目文件目录发布后,对应的ios/android应用目录
  2. Codevs 1961 躲避大龙
  3. Optimized fragmentation improves the identification of peptides cross-linked by MS-cleavable reagents (文献分享一组-张宇星)
  4. IT兄弟连 JavaWeb教程 JSP内置对象1
  5. IDEA安装actiBPM插件,亲测成功!避免直接在线安装或下载jar包硬盘都会报错问题!
  6. Zynq7000开发系列-7(在Zybo上运行Linaro桌面系统)
  7. 描述符__get__,__set__,__delete__和析构方法__del__
  8. 牛客寒假6-D.美食
  9. A.出题人的RP值
  10. Codeforces 1139D(推式子+dp)