如果我有这样的财产:
//test.h
@interface test
@property (nonatomic, readonly, weak) NSObject x;
@end
在实现文件中重新定义为可读/写:
// test.m
@interface test ()
@property (nonatomic, readwrite) NSObject x;
@end
我在.h中使用弱,但我在扩展中没有说什么,属性是否会保留'弱'说明符,还是会变为'强'?
重新定义属性时,是否会覆盖关键字strong / assign / weak?
答案 0 :(得分:5)
使用Xcode 5.1.1进行的简单测试显示保留了weak
属性。对于assign
和strong
属性也是如此 - 您可以在.h
中指定它们,并在.m
中省略它们,如果您确实将它们包含在.m
中1}}两者必须匹配。
话虽如此,我不知道这是否记录在案。但是,Objective-C的语义在任何地方都没有正式定义。因此请自担风险。
建议:重复一遍。