1

假设我有一个带有一些实例变量的类,我想通过 Dot Notation Property 公开这些 i-var 以供“只读”使用,但同时能够在我的类中使用 Property Mutator,也与点符号。

问题是,我在我的 .h 文件中声明如下:

@property (readonly) ....

然后,即使我自己编写了 mutator ( -(void) setMyIvar:),我也不能将它与点表示法一起使用,因为编译器正在(正确地)抱怨该属性是只读的。

我试图在我的 .m 文件(在接口扩展名内)中重新声明该属性,如下所示:

@inteface MyClass()
@property (retain) myIvar;
@end

但是编译器不接受这种双重声明。

有什么办法可以做到吗?

4

1 回答 1

2

你可以这样做,但你必须这样做:

@property (retain,readonly) ....

在您的实施中:

@inteface MyClass()
@property (retain,readwrite) myIvar;
@end

换句话说,除了可访问性之外,声明应该是相同的。

于 2011-03-10T11:01:13.393 回答