我是Objective C的新手,但拥有丰富的C ++经验。
我有一个名为bOn的成员变量,我已将其声明为readonly属性。 然后我合成它。
但是,编译器不会让我读它,说“实例变量'bOn'被声明为受保护的”。如果我没有合成,我会理解这个错误。
以下是我的摘要:
@interface Button : NSObject
{
. . .
BOOL bOn;
}
@property (nonatomic, readonly) BOOL bOn;
我在哪里使用它:
-(void) updateForButtonLeft:(Button *)butLeft Right:(Button *)butRight
{
BOOL bLeft = butLeft->bOn;
. . .
那我还有什么别的忘记呢?
谢谢,
戴夫。
答案 0 :(得分:5)
butLeft->bOn;
是直接实例变量访问,在极少数情况下,这是一个非常糟糕的主意。
您正在寻找的是:
BOOL bLeft = butLeft.b0n;
或者
BOOL bLeft = [butLeft b0n];