5

如果我有这样的财产:

//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?

4

1 回答 1

5

使用 Xcode 5.1.1 进行的简单测试显示该weak属性被保留。assignstrong属性也是如此- 您可以在 中指定它们并在 中.h省略它们.m,如果您确实将它们包含在.m两者必须匹配的情况下。

话虽如此,我不知道这是否记录在任何地方。但是,Objective-C 的语义也没有在任何地方正式定义。所以使用风险自负。

建议:重复一遍。

于 2015-01-06T02:23:50.180 回答