什么是强属性属性


80

我正在为开发人员使用Xcode Beta,并注意到一些细微的差异。其中之一是声明属性的新属性。

@property(strong)IBOutlet NSArrayController *arrayControl;

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

提前致谢


1
真的不应该在这里谈论beta NDA东西...
Kendall Helmstetter Gelner 2011年

3
好吧,这不像是即时消息泄露公司机密,但是是的,我可能应该把它放在苹果开发者论坛上
Chance Hudson

我不断看到这些关于目标C语言的“ beta NDA”评论。苹果公司感到有必要保护其目标c的秘密(每个人都渴望复制目标c!),我觉得很搞笑,并且开发人员觉得有必要四处寻找麻烦的人。
Jehan

Answers:



10

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

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

在ARC下,我们执行以下操作以确保类实例对引用对象拥有所有权权益(即,直到拥有者才能将其释放)。

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

4

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.