【发布时间】:2013-06-14 09:33:09
【问题描述】:
一般建议是对子视图使用弱 IBOutlet。但是现在在 iOS 6 中,不再使用内存警告清除视图,那么声明一个出口为弱与强之间有什么真正的实际区别吗?我的意思是实际的而不是理论的。
【问题讨论】:
-
视图不再被内存警告清除,是什么意思?你能解释一下
-
这就是文档所说的:developer.apple.com/library/ios/#documentation/uikit/reference/… 搜索 viewDidUnload 部分。
-
据我所知,除了视图控制器的主视图之外,您应该将 IBOutlets 设为弱属性。
-
子视图由其父视图保留。所以问题是如果没有添加到视图中,您是否需要对视图的引用。如果您打算在保留对它的引用的同时从其父视图中删除视图,请使用 strong。
-
@MatthiasBauch 和 JavierQuevedo-Fernández:是的,我已经知道所有这些理论。但从实际的角度来看,为了保持一致性,我认为不再声明网点为弱点是没有意义的。我只会将所有出口声明为强(除非它是周期性参考),这样我就不必担心以后是否将其从 superview 中删除。与 iOS 5 相比,现在使用 weak 并没有真正的优势,因为 if 可以帮助您避免在 viewDidUnload 中清空子视图。
标签: ios memory-management ios6 automatic-ref-counting iboutlet