我正在学习Objective-C和Cocoa Framework(通过Aaron Hillgass的书)并试图弄清楚为什么以下行包含“强”标识符。
@property (strong) NSManagedObjectContext *managedObjectContext;
据我了解,strong是默认值,为什么我需要明确声明呢?
答案 0 :(得分:19)
您可以在不写任何内容的情况下声明它,但是当您回到代码或其他开发人员查看您的代码时会发生什么?
您可能知道默认设置为强,但初级程序员会很困惑,以确定声明的变量是强还是弱。
答案 1 :(得分:2)
同意理查德。
//强而弱的参考文献 ARC引入了两个新的对象引用限定符:strong和weak。
在ARC下,默认情况下所有对象引用变量都很强。 这不仅适用于属性; @property语句的默认标识符是为非对象类型分配的, 对象类型应该很强。 所有对象引用 - 属性值,实例变量,自动变量, 参数变量和静态变量 - 就像ARC下的保留属性一样。
答案 2 :(得分:-2)
在The Objective-C Programming Language中:
指定强>
指定setter使用简单赋值。这个 属性是默认值。
也就是说,setter语义的默认属性是 assign ,而不是 strong 。