作者bmzz (bmzz)
看板MacDev
标题[问题] ViewController 的建立时机
时间Thu Nov 24 20:55:44 2011
小弟是 Objective-C 的新手,有个问题想请教一下大家。
假设 RootViewController 有十个按钮,每一个按钮都会跳到相对应的
ViewController 中。
那麽我应该是在 RootViewController 的 ViewDidLoad(or init) 时,分
别将这些 ViewController 物件 alloc 出来,然後存放在相对应的
RootViewController 的 property(or private variable)中,还是应该
在触发 Button Event 时,再 alloc 出来,然後存放在
RootViewController 的 property(or private variable)中?
这两种做法是否没有定论?视情况而定?
那分别又有什麽优缺呢?
希望有大大可以帮忙解惑!谢谢!问题很新,实在抱歉!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.242.250.115
1F:→ iwayne:个人觉得,要看你各个ViewController的状态是否要储存而定 11/24 21:52
2F:→ iwayne:因为按下button後再alloc出来,是否回到Root时就会release? 11/24 21:53
3F:→ iwayne:因为,你再按同样的button又会再alloc新的ViewController. 11/24 21:53
4F:→ iwayne:如果你各ViewController的状态有需要存的话,那就在root 11/24 21:55
5F:→ iwayne:alloc物件吧。也就是说当root被release时,那些View再回收. 11/24 21:56
谢谢回应!再请问,如果我都是等 root 被 release 才 release 这些 controller,
那在 iphone 3GS 上面是否很容易 crash ?(因为一直占着记忆体)
※ 编辑: bmzz 来自: 210.242.250.115 (11/24 21:58)
6F:→ popcorny:我习惯是按到才alloc.. 并且不会放到property.. 11/24 22:51
7F:推 ethan4ptt:以Apple一开始的建议,是使用延迟载入。因为Mobile的 11/25 21:13
8F:→ ethan4ptt:RAM大部分都不多,一开始全alloc。载入时间较久 11/25 21:14
9F:→ ethan4ptt:不过现在新机器效能都不错了,是否还需要严格遵守,就看 11/25 21:15
10F:→ ethan4ptt:就看你App的特性了。 11/25 21:16
11F:推 Blueshiva:或者另一个考量方式是,预期使用者会长按到的就先alloc 11/26 11:57
12F:→ Blueshiva:下来,提升反应,少用到的就按到在alloc,反正不常用 11/26 11:58
了解,非常感谢大家的回应!
※ 编辑: bmzz 来自: 114.24.75.187 (11/26 20:24)
13F:→ aecho:我是喜欢lazy load,有用到再alloc。放property的话 11/26 21:12
14F:→ aecho:改一下getter的行为就可以实现lazy load了 11/26 21:12