У меня есть протокол 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
перечисление в протоколе, чтобы методы протокола могли принимать входные значения этого типа.
Затем я надеюсь переопределить или расширить эту typedef в классах, которые соответствуют этому протоколу, чтобы каждый класс мог иметь свои собственные состояния просмотра. Однако я сталкиваюсь со следующими двумя ошибками:
Redeclaration of enumerator 'ViewStateNone'
Conflicting types for 'ViewState'
Мне стыдно признаться, что мои знания C (а именно typedef
s) не обширны, поэтому то, что я пытаюсь сделать здесь, во-первых, возможно и, во-вторых, разумно?
Приветствую друзей.