【发布时间】:2015-03-03 11:10:11
【问题描述】:
我知道有很多关于“强”与“弱”的文章。但是所有文档都说两者都是 100% 的同义词,您可以使用“strong”代替“retain”,反之亦然。
我的问题是:如果它们相同,为什么 Apple 会引入新的“强”关键字?我已经在一个示例项目中进行了测试,并且“强”和“保留”属性似乎都做了同样的事情。你不认为如果苹果引入了'strong'属性,它应该不允许使用'retain'属性吗?还是我错过了什么?
【问题讨论】:
-
strong和retain几乎相同,但是因为在 ARC 中您不需要担心 retaining-release 对象,strong逻辑上更适合 ARC 中的属性...就像在 MRR 中,retain与release或autorelease具有相反的等价物,在 ARC 环境中,strong没有这样的相反等价物,这就是为什么在逻辑上在 ARC 中使用strong而不是retain更正确;如果这对你有意义。 -
@Katoch 我读过它指向同一个东西strong =我理解的保留。但问题是为什么要在开发人员心中产生疑问(尽管我总是使用强),因为保留与手动内存管理有关,他们应该完全停止在 ARC 项目中使用保留,为什么它仍然在 ARC 中占有一席之地?
-
一行回答。保留在非弧中,强在弧中..
标签: ios objective-c memory-management properties automatic-ref-counting