当使用强或弱的特性(When to use strong or weak for propertie

2019-09-19 04:46发布

我有一个表视图作为IBOutlet ,默认情况下的XCode设置其属性为strong ,而不是weak 。 有时候,我得到一个“收到内存警告”的消息。 于是,我就从改变很多性能strongweak ,但它似乎并没有影响过程和事物工作的顺利开展。 我应该设置网点薄弱,还是我错了?

而最重要的是,我应该设置的所有属性,以nilviewDidUnload方法,或仅IBOutlet S'

Answer 1:

你应该只设置Strong属性,以nilviewDidUnloadWeak ,如果目标对象被释放属性将自动设置为无。

IBOutlet可以设置为strongweak基础上的要求。

对于警告的问题,你所面临的,你可以提供更多的细节和代码?

除了由乔什提供的链接,里面有很多关于SO与该主题相关的帖子,有些是下面:

弱或强于IBOutlet中和其他

Objective-C的声明@属性属性(非原子,副本,强,弱)

好详细的解释可以在这里找到:

http://www.raywenderlich.com/5677/beginning-arc-in-ios-5-part-1

有关这个主题的苹果文档可以在这里找到: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html#//apple_ref/doc/uid/TP30001163-CH17 -SW1



Answer 2:

“当父母有到子对象的引用,你应该使用很强的借鉴意义。当孩子有它的父对象的引用,你应该使用弱引用”

一般来说,当你处理存储周期弱引用使用。 如果你用强的,你需要设置为零的viewDidUnload,因为如果你不这样做,在内存不足的条件下,你可能会导致意外的泄漏。 你不释放他们的dealloc因为ARC会为你做它。 因为,当目标对象被销毁,这些值都为零自动设置为代替弱不需要那么治疗。 没有了悬摆指针。



文章来源: When to use strong or weak for properties