1

使用最新版本的 xCode 和 LLVM 编译器,可以在声明属性等时省略内存管理属性,

@property(copy) NSString *myString可以声明为 ,

@property NSString *myString; 

myString使用“ copy”作为默认属性还是“ Strong”?

有什么地方可以找到默认值吗?等会

@property BOOL myBoolValue会用assign吗?

4

3 回答 3

1

原始数据没有引用计数,因此不能使用 Strong 或 Weak,只能使用 assign,这是默认值

对于对象,ARC 中的默认值为strong

于 2013-06-18T10:45:09.397 回答
0

在不使用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

于 2013-06-18T10:55:42.127 回答
0

默认情况下,对象属性很强大。参考:http: //developer.apple.com/library/mac/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html

于 2013-06-18T10:55:47.070 回答