【发布时间】:2012-10-17 11:40:10
【问题描述】:
鉴于 iOS6 不再卸载视图,因此不再调用 UIViewController 的 viewDidUnload,我想知道是否有可靠的方法在 iOS5 上导致同样的行为?
也就是说,我真的很想停止在 iOS5 上卸载我的视图,原因与 Apple 给出的不再在 iOS 6 上卸载视图的原因相同(因为它不再节省大量内存,而且几乎总是额外错误的来源)。我宁愿把时间花在开发有用的功能上,也不愿测试很多现在只能在 iOS5 上发生并且只能在低内存中发生的案例!
我四处搜索,找不到以前问过这个问题的人,这让我感到惊讶。是否可以像在viewDidLoad 中保留对self.view 的额外引用一样简单(并且仅在dealloc 中发布它)?有没有可能的陷阱?
【问题讨论】:
-
您确定即使在 iOS5 上它也“不再节省大量内存”?据推测,iOS6 中的优化使旧机制过时了。
-
在 viewDidLoad 中放置一个保留并且在 dealloc 之前没有释放意味着 dealloc 永远不会被调用,所以不,这不是您想要处理的方式。
-
@FilipRadelic 我建议在 self.view 上保留 - 据我所知,这不会阻止 self 被释放,尽管由于其他原因可能是一个坏主意。
-
@Thilo 不,我绝对不确定。 WWDC 视频似乎暗示卸载视图在“一段时间”内没有产生任何明显差异。我想我需要做一些测量才能确定。
标签: ios ios5 uiviewcontroller ios6 viewdidunload