使用最新版本的 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