У меня есть протокол Objective C:
typedef enum {
ViewStateNone
} ViewState;
@protocol ViewStateable
- (void)initViewState:(ViewState)viewState;
- (void)setViewState:(ViewState)viewState;
@end
Я использую этот протокол в следующем классе:
#import "ViewStateable.h"
typedef enum {
ViewStateNone,
ViewStateSummary,
ViewStateContact,
ViewStateLocation
} ViewState;
@interface ViewController : UIViewController <ViewStateable> {
}
@end
Я не зайду слишком далеко в специфические особенности моего приложения, но что я делаю, вот typedef
луг перечисление в протоколе так, чтобы методы протокола могли взять входное значение того типа.
Я затем надеюсь повторно объявить или расширить то определение типа в классах, которые соответствуют тому протоколу, так, чтобы каждый класс мог иметь их собственные состояния отображения. Однако я сталкиваюсь со следующими двумя ошибками:
Redeclaration of enumerator 'ViewStateNone'
Conflicting types for 'ViewState'
Я стыжусь признать что мое знание C (а именно, typedef
s) не обширно, так то, что я пытаюсь сделать здесь, во-первых, возможный и, во-вторых, разумный?
Друзья аплодисментов.