假设我有一个A类,它引用另一个类(B类)作为委托。该委托类已经定义了一组枚举值来标识状态。
在A类中,如何将委托(B类)设置为表示其中一个状态的枚举? A类不会意识到这些状态,对吗?
答案 0 :(得分:2)
您可以在另一个.h文件中定义枚举,然后在两个类(* .h)文件中#import该文件。那就足够了。
然后你只需要引用枚举类型。
答案 1 :(得分:2)
班级
A
不会发现任何这些状态,对吗?
绝对。为了让您的班级A
了解enum
,请将其定义放在B
的标题中。或者,您可以typedef
enum
enum
,这样您就不必使用标记键入typedef enum {
kClassBState1
, kClassBState2
, kClassBState3
} ClassBState;
:
B
类ClassBStates
可以定义像这样-(void)switchToState:(ClassBState)newState;
的方法:
A
类ClassB *instB = [[ClassB alloc] init];
[instB switchToState:kClassBState3];
可以像这样调用此方法:
{{1}}