如何在多个课程中共享枚举?

时间:2014-01-30 15:53:23

标签: ios objective-c cocoa enums

假设我有一个A类,它引用另一个类(B类)作为委托。该委托类已经定义了一组枚举值来标识状态。

在A类中,如何将委托(B类)设置为表示其中一个状态的枚举? A类不会意识到这些状态,对吗?

2 个答案:

答案 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}}