Может ли перечисление быть определено в том же файле, что и заголовок класса, который использует его в Objective-C?
Если нет, то и он должен быть включен в отдельный файл (например, MyEnums.h) нужно ли мне #импортировать MyEnums.ч каждый раз .м или .файл h хочет ссылаться на тип или одно из значений?
Вот пример кода MyClass.h:
#import <Foundation/Foundation.h>
// #1 placeholder
@interface MyClass : NSObject {
}
// #2 placeholder
- (void)sampleMethod:(MyEnum)useOfEnum;
// #3 placeholder
@end
Вот перечисление, которое я пытаюсь определить:
typedef enum MyEnum {
Value1,
Value2
}
Если я попытаюсь поместить свое определение enum в #1, я получуошибку: перед "интерфейсом" здесь не может быть указан тип или класс хранения.
Если я попытаюсь поместить свое определение перечисления в #2, я получаю ошибку: ожидаемый идентификатор или ' ('перед' end ' .
Если я попытаюсь поместить свое определение перечисления в #3, я получу ошибку: ожидаемая ')' перед 'MyEnum'. Который жалуется на параметр "useOfEnum", потому что его тип еще не определен.
Так можно ли это сделать? Или как лучше всего сделать это и ограничить количество #импорта, необходимого?