【发布时间】:2014-01-31 22:45:44
【问题描述】:
我有几个关于 Objective-C 属性的相关问题,但首先让我们看一段代码:
这是该类的公共接口:
@interface SomeClass : NSObject
@property(retain, readonly) ParentType* aVariable;
@end
在实现中我定义了一个类扩展:
@interface SomeClass ()
@property(retain) ChildType* aVariable;
@end
我知道我可以做这种事情来使“aVariable”在实现中读写,但我有两个问题:
- 在类扩展中使用属性的子类型是否可以接受?这行得通吗?
- 我需要在类扩展中保留retain属性吗?还是重新声明属性会清除所有这些属性?
提前致谢!
编辑:错字
【问题讨论】:
-
您在使用 ARC 吗?如果是这样,您应该使用 strong 而不是 retain。
-
@FabienWarniez 在 ARC 下,
retain是strong的同义词。 -
你说得对,但我只是更喜欢strong,而retain让我想起了旧的做事方式,当你实际上不得不调用“retain”时。
标签: objective-c types properties attributes