首页 文章

什么是强属性属性

提问于
浏览
79

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

@property(strong)IBOutlet NSArrayController *arrayControl;

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

提前致谢

3 回答

  • 4

    作为Objective-C Automated Reference Counting (ARC)的一部分,它是 retain 属性的替代品 . 在非ARC代码中,它只是 retain 的同义词 .

  • 10

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

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

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

    **// ARC Compliant Declaration
    @property(strong) NSObject *obj;**
    
  • 95

    我们知道,我们无法在iOS 5中的基于ARC的项目中释放任何对象 . 因此,当我们想要在以后保留任何对象以供进一步使用并且不希望ARC从内存中删除对象时,我们设置对象的属性为“强” .

相关问题