我正在为开发人员使用Xcode beta,并注意到一些微妙的差异 . 其中包括声明属性的新属性 .
@property(strong)IBOutlet NSArrayController *arrayControl;
我的问题是:强属性是什么意思?它会取代一些旧的,还是全新的?我搜索了谷歌和开发人员的文档,但没有找到任何东西 . 直到我知道它是什么,我犹豫是否使用它 .
提前致谢
作为Objective-C Automated Reference Counting (ARC)的一部分,它是 retain 属性的替代品 . 在非ARC代码中,它只是 retain 的同义词 .
retain
强引用是对对象的引用,该对象阻止其被释放 . 换句话说,它创建了所有者关系 . 而以前你会这样做:
**// Non-ARC Compliant Declaration @property(retain) NSObject *obj;**
在ARC下,我们执行以下操作以确保类实例将所有权利益作为引用对象(即,在所有者出现之前不能解除分配) .
**// ARC Compliant Declaration @property(strong) NSObject *obj;**
我们知道,我们无法在iOS 5中的基于ARC的项目中释放任何对象 . 因此,当我们想要在以后保留任何对象以供进一步使用并且不希望ARC从内存中删除对象时,我们设置对象的属性为“强” .
3 回答
作为Objective-C Automated Reference Counting (ARC)的一部分,它是
retain
属性的替代品 . 在非ARC代码中,它只是retain
的同义词 .强引用是对对象的引用,该对象阻止其被释放 . 换句话说,它创建了所有者关系 . 而以前你会这样做:
在ARC下,我们执行以下操作以确保类实例将所有权利益作为引用对象(即,在所有者出现之前不能解除分配) .
我们知道,我们无法在iOS 5中的基于ARC的项目中释放任何对象 . 因此,当我们想要在以后保留任何对象以供进一步使用并且不希望ARC从内存中删除对象时,我们设置对象的属性为“强” .