如果我有这样的一个属性:
//test.h
@interface test
@property (nonatomic, readonly, weak) NSObject x;
@end
在实现文件中重新定义为可读/可写:
// test.m
@interface test ()
@property (nonatomic, readwrite) NSObject x;
@end
我在.h文件中使用了weak关键字,但是在扩展中没有提到,这个属性会保留“weak”限定符吗?还是会更改为“strong”?
当重新定义属性时,关键字strong/assign/weak会被覆盖吗?
strong/weak/assign
属性。在只读的公共声明中不需要这样做。 - rmaddy.h
中仅声明readonly
,在.m
的类扩展中声明readwrite, weak
会在Xcode 5.1.1下出现“主属性声明隐式强引用,而在类扩展中重新声明为弱引用”的错误。然而,在扩展中包含strong
或assign
不会引起编译器的注意。后来的编译器是否改变了这一点? - CRDweak
属性来完成那个。好的,知道了。 - rmaddy