Если нет, и его необходимо включить в отдельный файл (например, MyEnums.h), мне нужно, чтобы #import MyEnums.h каждый раз, когда файлы .m или .h хотят ссылаться на тип или одно из значений ?Можно ли указать перечисление в том же файле, что и заголовок класса, который использует его в Objective-C?
Вот пример кода 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
}
Если я пытаюсь размещая мое определение перечисления в # 1, Я получаю ошибку : здесь нет типа или класса хранения до «интерфейса».
Если я пытаюсь размещая мое определение перечислимого в # 2, я получаю об ошибке. Ожидаются идентификатором или «(» перед «конца»
Если я пытаюсь размещая мое определение перечислимого в # 3, я получаю error: expected ')' до 'MyEnum'. Который жалуется на параметр «useOfEnum», потому что его тип еще не определен.
Так что это можно сделать? Или что это лучший способ сделать это и ограничить количество необходимых символов?
Он также будет работать в позиции 2 или где-либо еще до того, как на самом деле будет использоваться перечисление, но оно визуально более неудобно в любом месте, кроме положения 1. – Chuck
@Chuck: Хорошая точка. Я даже не подумал проверить, будет ли это работать на позициях № 2 и № 3. Позиция №1 - это путь. –
Спасибо за ответ, эта ссылка: http://stackoverflow.com/questions/707512/typedef-enum-in-objective-c/707572#707572 объясняет, почему вам нужно поместить его после брекетов. – Senseful