не может прочитать свойство только для чтения, компилятор жалуется - PullRequest
0 голосов
/ 06 октября 2010

Я новичок в Objective C, но имею большой опыт работы с C ++.

У меня есть переменная-член bOn, которую я объявил как свойство только для чтения. Затем я синтезирую его.

Однако компилятор не разрешил мне прочитать его, сказав, что «переменная экземпляра 'bOn' объявлена ​​защищенной" Я бы понял эту ошибку, если бы я не синтезировал.

Вот мои фрагменты:

@interface Button : NSObject

{

    . . .
    BOOL bOn;
}

@property (nonatomic, readonly) BOOL bOn;

И где я его использую:

 -(void) updateForButtonLeft:(Button *)butLeft Right:(Button *)butRight

{

    BOOL bLeft = butLeft->bOn;
    . . .

Так что еще я забыл сделать?

Спасибо

Дэйв.

1 Ответ

5 голосов
/ 06 октября 2010

butLeft->bOn; - это прямой доступ к переменной экземпляра, и при всех, кроме очень редких обстоятельствах, это действительно плохая идея.

Что вы ищете:

BOOL bLeft = butLeft.b0n;

Или

BOOL bLeft = [butLeft b0n];
...