ios - 在 ARC 中强 vs 保留

标签 ios objective-c memory-management properties automatic-ref-counting

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

我的问题是:如果它们相同,为什么 Apple 引入新的“strong”关键字?我已经在示例项目中对两者进行了测试,“strong”和“retain”属性似乎都在做同样的事情。你不认为如果 Apple 引入了 'strong' 属性,它就应该禁止使用 'retain' 属性吗?还是我遗漏了什么?

最佳答案

retain 是 ARC 之前时代的遗留物,您可以根据您是否希望它在内存中停留来增加/减少对象 retain count

显然,有了 ARC,您就不必再担心这个了,我怀疑 retain 可能只是为了让更老练的 objective-c 程序员更容易使用而保留下来。

arc 最流行的关键字是:(strong、weak、nonatomic、readonly、copy)

关于ios - 在 ARC 中强 vs 保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28830328/

相关文章:

ios - Storyboard中 UITabBar 的过渡样式

ios - 为什么 alloc 和 init 在创建新对象时可能返回不同的对象?

ios - ARC下sharedInstance模式的内存含义是什么?

ios - FBSDKLoginManager logInWithReadPermissions?

java - Java 应用程序终止时是否释放了所使用的资源?

ios - 前进到特定的键盘 Xcode

ios - UITableViewCell 框架没有根据给定的宽度和高度

iphone - 当应用程序处于后台时,UILocalNotification 未显示在通知中心

c - 我怎样才能在 C 程序中删除这个段错误

java - 声明字段的内存分配