在 ARC 中强 vs 保留

Strong vs Retain in ARC

我知道有很多关于 'strong' 与 'weak' 的评论。但是所有文档都说两者是 100% 的同义词,您可以使用 'strong' 代替 'retain',反之亦然。

我的问题是:如果它们相同,Apple 为什么要引入新的 'strong' 关键字?我在一个示例项目中测试了这两个, 'strong' 和 'retain' 属性 属性似乎做同样的事情。你不觉得如果 Apple 引入了 'strong' 属性,它就应该禁止使用 'retain' 属性吗?还是我遗漏了什么?

retain 是 ARC 之前的时代遗留下来的东西,你会 increase/decrease 一个对象 retain count 取决于你是否希望它在内存中徘徊。

显然,有了 ARC,您不再需要担心这一点,我怀疑 retain 可能只是为了方便更老练的 objective-c 程序员使用。

arc 最常用的关键字是:(strong, weak, nonatomic, readonly, copy)