我正在学习 Objective-C 和 Cocoa 框架(通过 Aaron Hillgass 的书)并试图弄清楚为什么以下行包含“强”标识符。
@property (strong) NSManagedObjectContext *managedObjectContext;
据我了解,strong 是默认设置,那么为什么我需要显式声明它呢?
我正在学习 Objective-C 和 Cocoa 框架(通过 Aaron Hillgass 的书)并试图弄清楚为什么以下行包含“强”标识符。
@property (strong) NSManagedObjectContext *managedObjectContext;
据我了解,strong 是默认设置,那么为什么我需要显式声明它呢?
你可以在不写任何东西的情况下声明它,但是当你回到代码或其他开发人员查看你的代码时会发生什么?
您可能知道默认值将设置为强,但初级程序员会很困惑地确定声明的变量是强还是弱。
同意理查德。
//强引用和弱引用 ARC 引入了两个新的对象引用限定符:强引用和弱引用。
在 ARC 下,所有对象引用变量默认都是强的。这不仅适用于属性;@property 语句的默认标识符是为非对象类型分配的,因为对象类型应该是强的。所有对象引用 - 属性值、实例变量、自动变量、参数变量和静态变量 - 就像 ARC 下的保留属性一样。