使用最新版本的 xCode 和 LLVM 编译器,可以在声明属性等时省略内存管理属性,
@property(copy) NSString *myString可以声明为 ,
@property NSString *myString;
将myString使用“ copy”作为默认属性还是“ Strong”?
有什么地方可以找到默认值吗?等会
@property BOOL myBoolValue会用assign吗?
使用最新版本的 xCode 和 LLVM 编译器,可以在声明属性等时省略内存管理属性,
@property(copy) NSString *myString可以声明为 ,
@property NSString *myString;
将myString使用“ copy”作为默认属性还是“ Strong”?
有什么地方可以找到默认值吗?等会
@property BOOL myBoolValue会用assign吗?
原始数据没有引用计数,因此不能使用 Strong 或 Weak,只能使用 assign,这是默认值
对于对象,ARC 中的默认值为strong
在不使用ARC(因此使用手动内存管理)的项目中,属性的默认属性是(atomic, assign). 从 Xcode 4.4+(或 4.5+,我不记得到底是哪个),在使用 ARC 的项目中,默认属性是(atomic, strong)!
因此,对于 NSStrings,它也将使用强,而不是复制。
默认情况下,对象属性很强大。参考:http: //developer.apple.com/library/mac/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html