MacDev 板


LINE

: 推 dm4:请问一下 zonble 大,文中的这个 scrollView 如果放在 12/26 15:32 : → dm4:viewDidLoad 的时候再 add 会有什麽差别吗? 12/26 15:32 整个解释一遍好了。UIViewController 与其所属的 view 之间 的关系,是所谓的 Lazy Loading-在 UIViewController 经过 alloc、init 之後,并不会马上产生 view 这个物件,而是第一 次呼叫到 view,才去产生 view。根据 UIViewController 所表 现的行为,我们可以知道,苹果的实作大概是这样: @implementation UIViewController .... - (UIView *)view { if (!_view) { [self loadView]; if (_view) { [self viewDidLoad]; } } return _view; } - (void)setView:(UIView *)inView { [_view release]; _view = [inView retain]; if (!_view) { [self viewDidUnload]; } } 我们有两种不同的方式载入 view,一种是透过 nib 载入,另外 一种则是用程式产生。官方文件的规范是,如果你要载入 nib, 就不要改写 loadView,让 UIViewController 原本实作的 loadView 载入 nib,而你对 nib 载入的 view 还想做什麽事情,就写在 viewDidLoad 里头。 而如果要自己用程式产生 self.view,那麽,官方就要求你改写 loadView,而且不要呼叫 [super loadView]。实际上,如果没有 nib, 却呼叫了 [super loadView],还是会给你一个空白的 view;会动, 但是不好-因为根本就不需要载入 nib,呼叫 super,却会让程式 走到看看有没有 nib 要载入那段,其实是多此一举。这时候写在 loadView 与 viewDidLoad 的差别不大。 有件事情很重要:什麽时候要去 release scrollView。由於 UIViewController 不只是在 dealloc 的时候会去 release view, 而是在收到记忆体不足警告的时候,不在前景的 view controller, 都会把 view 放掉,而当这个 view controller 回到前景时,再 透过 Lazy Loading,重新产生 view 物件。所以,像 scrollView 这种会在 loadView 产生的物件,不但要在 view controller dealloc 的时候 release,在 viewDidUnload 的时候也要 release,以避免 因为记忆体警告发生时,重复在 loadView 中产生新的 scrollView, 而造成 memory leak。 -- zonble.net cocoa.zonble.net --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.44.182.144
1F:推 dm4:感谢 zonble 大! 12/28 12:16
2F:推 popcorny:好文章..推!! 12/28 14:26
3F:→ seedman:原来如此! 12/29 18:14







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP