关于iphone:什么是强大的属性属性

What is the strong property attribute

我正在为开发人员使用Xcode测试版,并注意到一些细微的差异。其中有一个新的属性用于声明的属性。

1
@property(strong)IBOutlet NSArrayController *arrayControl;

我的问题是:强属性是什么意思?它是取代旧的还是全新的?我搜索过谷歌和开发人员的文档,没有找到任何东西。直到我知道它是什么,我才犹豫要不要用它。

提前谢谢


它代替了retain属性,作为Objective-C自动参考计数(ARC)的一部分。在非ARC代码中,它只是retain的同义词。


强引用是对阻止解除分配的对象的引用。换句话说,它创建了一个所有者关系。鉴于之前您会这样做:

1
2
**// Non-ARC Compliant Declaration
@property(retain) NSObject *obj;**

在ARC下,我们执行以下操作以确保类实例对引用的对象具有所有权兴趣(即,在拥有者为之前,无法释放它)。

1
2
**// ARC Compliant Declaration
@property(strong) NSObject *obj;**


如我们所知,在iOS5中,我们不能释放基于弧的项目中的任何对象。因此,当我们希望保留任何对象以便在以后的阶段进一步使用,并且不希望Arc从内存中删除该对象时,我们将该对象的属性设置为"强"。