什么是强大的财产属性
我正在为开发人员使用Xcodetesting版,并注意到一些细微的差异。 其中有一个是属性的新属性。
@property(strong)IBOutlet NSArrayController *arrayControl;
我的问题是:强属性意味着什么? 它取代了一些较旧的,还是全新的? 我已经通过谷歌和开发人员的文档search,并没有能够find任何东西。 直到我知道这是什么,我犹豫使用它。
提前致谢
它是retain
属性的替代品,是Objective-C自动引用计数(ARC)的一部分 。 在非ARC代码中,它只是retain
的同义词。
一个强大的引用是对一个对象的引用,阻止它被释放。 换句话说,它创build了一个所有者关系。 而以前你会这样做:
**// Non-ARC Compliant Declaration @property(retain) NSObject *obj;**
在ARC下,我们做下面的事情来确保一个类实例将所有权利益作为一个被引用的对象(也就是说,直到拥有者不能被解除分配)。
**// ARC Compliant Declaration @property(strong) NSObject *obj;**
正如我们所知,我们不能在iOS 5中的基于ARC的项目中发布任何对象。因此,当我们想要保留任何对象以便在稍后阶段进一步使用并且不希望ARC从内存中移除对象时,我们设置该对象的属性为“强”。