什么是强属性属性

Cha*_*son 79 iphone macos cocoa objective-c ios

我正在为开发人员使用Xcode beta,并注意到一些微妙的差异.其中包括声明属性的新属性.

@property(strong)IBOutlet NSArrayController *arrayControl;
Run Code Online (Sandbox Code Playgroud)

我的问题是:强属性是什么意思?它会取代一些旧的,还是全新的?我搜索了谷歌和开发人员的文档,但没有找到任何东西.直到我知道它是什么,我犹豫是否使用它.

提前致谢

Lil*_*ard 95

retain作为Objective-C自动引用计数(ARC)的一部分,它是属性的替代品.在非ARC代码中,它只是一个同义词retain.


Jac*_*ish 10

强引用是对对象的引用,该对象阻止其被释放.换句话说,它创建了所有者关系.而以前你会这样做:

**// Non-ARC Compliant Declaration
@property(retain) NSObject *obj;**
Run Code Online (Sandbox Code Playgroud)

在ARC下,我们执行以下操作以确保类实例将所有权利益作为引用对象(即,在所有者出现之前不能取消分配).

**// ARC Compliant Declaration
@property(strong) NSObject *obj;**
Run Code Online (Sandbox Code Playgroud)