奇怪的是,在 Big Nerd Ranch iOS 5 book (p.73) 和 Programming iOS 5 book (O'Reilly, p.314) (updadte: even Kochan's Objective-C book Fourth edition)中,在 ARC 的上下文中,他们说 properties 属性的默认值是assign
... 但是Apple 的文档说默认值是strong
.
我还尝试了一个简单的程序,如果我不指定strong
,程序可以正常工作,如果我指定strong
,它的工作方式相同,而当assign
使用时,编译器会显示警告,所以看起来默认确实是strong
.
所以如果大多数时候,我们想要
@property (nonatomic, readwrite, strong) NSMutableArray *foo;
然后我们可以写
@property (nonatomic) NSMutableArray *foo;
因为其他两个 (readwrite
和strong
) 是默认值?