如果在类扩展中重新定义属性的内存管理会发生变化吗?

时间:2015-01-06 01:25:11

标签: objective-c memory-management declared-property

如果我有这样的财产:

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

1 个答案:

答案 0 :(得分:5)

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

话虽如此,我不知道这是否记录在案。但是,Objective-C的语义在任何地方都没有正式定义。因此请自担风险。

建议:重复一遍。