Невозможно получить доступ к перечисляемому типу данных из другого класса - PullRequest
0 голосов
/ 26 августа 2009

Надеюсь, что кто-то может помочь мне с этим, поскольку я немного поцарапал и искал, я все еще пропускаю что-то очевидное ... Я определил простой перечислимый тип данных:

typedef enum {
    kLow = -1,
    kMid,
    kHigh
} MyMode;

И сделал переменную экземпляра этого типа в моем ClassA:

@interface ClassA : UIView {
    MyMode myMode;
}
@property (nonatomic) MyMode myMode;
@end

А затем myMode синтезируется в @implementation. Теперь в другом классе я ссылаюсь на ClassA

@interface ClassB : UIView {
    ClassA *classA;
}
@property (nonatomic, retain) ClassA *classA;
@end

Наконец, в методе с ClassB я хотел бы проверить состояние свойства myMode ClassA. Я пробовал

if (classA.myMode == kLow) 

и это дает мне ошибку "запрос члена в чем-то, не являющемся структурой или объединением". Кастинг не имеет значения.

if ([classA myMode] == kLow)

дает мне метод "No '-myMode' не найден".

Я считаю мои заголовки и включения правильные.

1 Ответ

1 голос
/ 26 августа 2009

Вам нужно @interface для ClassA, прежде чем вы сможете обратиться к свойствам ClassA. Как правило, это означает, что вам нужно #import "ClassA.h" в ClassB.m, прежде чем ClassB's @implementation.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...