简述 IOS中的LazyLoad思想

摘要:
通常,您有一个NSArray属性,但如果在初始化方法中不分配/init,它只是一个指针,不占用内存。然后编写该属性的访问器,并判断该属性的指针在访问器中是否为空。如果为空,则使用allocate/init,然后实际生成此NSArray。计算机的懒惰行为可能会减少内存消耗,为什么不呢?其他LazyLoad的想法是这样的:等到最后一刻才开始使用资源作为最后的手段,这对于iPhone等内存较少的设备来说是必要的。

Lazy,谁懒?当然是计算机偷懒。通常用法,你有一个NSArray的property,但是你不在初始化方法里为其alloc/init,它就只是一个指针,不会占用内存。然后你写了此property的访问器,在访问器里判断此property的指针是否为空,若为空,就alloc/init,这时才真正生成这个NSArray。

这样子达到的效果就是,除非这个NSArray被使用,否则它永远不会真正生成,也就不会占用内存。计算机的偷懒行为可能减少内存占用,何乐为不为?

其他LazyLoad的思想都是这样:拖到最后一刻,万不得已了,才开始占用资源,这在iPhone这种内存较少的设备上是很有必要的。

参考:http://segmentfault.com/q/1010000000229295

免责声明:文章转载自《简述 IOS中的LazyLoad思想》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Centos6.5 恢复误删的系统面板[转载]oracle 存储过程的基本语法及注意事项下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

易学堂 虚拟定位和wifi的SSID、BSSID 实现远程刷脸签到

【签到场景】 新人培训,要求连续3天参加培训,1天4次签到(14:00、15:00、16:00、17:00); 签到时,要求到培训点,连接培训点提供的wifi,才能进行签到,否则,签到时app会提示 必须连接培训点网络进行签到(记不大清,大概就提示这意思) 【需求分析】 1.必须在培训点附近才能签到 ——这个使用虚拟机的定位功能就可以做到,简单 2.必须连...

无密码远程桌面连接方法

无密码远程桌面连接方法具体如下: 1.设置允许远程桌面访问。 2.在要被远程访问的计算机的桌面上,右击【我的电脑】-【系统属性】。   3.然后勾选【允许用户远程连接到此计算机】。 4.点击【开始】-【运行】。 5.输入 gpedit.msc,回车。   6.在【组策略】对话框,依次展开【Windows 设置】-【安全设置】-【本地策略】-【安全选项】。...

出现 "System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本" 错误的解决办法

出现 "System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本" 错误的解决办法 1.问题: 在Windows SP2 + VS2005 + Oracle 9i +IIS5.1环境中运行ASP.NET网页的时候出现如下错误: System.Data.OracleClient 需要 Oracle 客户端软...

ipod恢复及导入音乐

首先,把ipod连接上电脑,打开itunes 记住一定要去www.apple.com.cn下载最新版本的屯itunes 。都是免费的。 然后用该软件对ipod做一个软件恢复,把ipod恢复到出厂设置。 如果失败,那就先把ipod在windowns上面格式化一次,不要选择快速格式化。文件格式FAT32.然后再软件恢复一次。 如果还是失败,则在软件恢复的时候先...

[SC] OpenSCManager 失败 5:拒绝访问

问题:[SC] OpenSCManager 失败 5: 网查这个错误信息指拒绝访问 权限不足 1.解决: 以管理员身份运行cmd,即可 查询这个提示是指什么错误时,看网上有很多文章写用下面这种方法,很好奇的亲测了一下,也可以解决: 运行-->输入regedit-->依次找到HKEY_LOCAL_MACHINE\Software\Microso...

安装回环网卡&安装Linux前准备

1.什么是回环网卡回环网卡就是微软的一种类似于虚拟网卡的一种设备,它能够被安装在一个没有网卡(这里是硬件网卡),的环境下,或者用于测试多个宿主环境。 2.回环网卡的作用这里仅仅以在vmvare中安装Linux来说,vmvare中一共有三种让Linux虚拟机和主机连通的方式也就是能ping通,分别是nat模式,桥接模式,和hostonly模式,至于这三种方式...