Typedef enum Objective-C

Rav*_*eja 2 enums objective-c

我有班级距离和typedef枚举单元,

@interface Distance:NSObject{

double m_miles;

}

@property double m_miles;

-(Distance *) initWithDistance: (double) value andUnit:(Unit) unit;

@implementation Distance

-(Distance *)initWithDistance: (double) value andUnit:(Unit) unit{

  self = [super init];

 if (self){

   switch (unit) {

     case Unit.miles:  m_miles = value;

                       break;

    case Unit.km:      m_miles = value/1.609344;

                       break;
}


}
Run Code Online (Sandbox Code Playgroud)

我在哪里申报我的枚举单位?如何访问

typedef enum{

    miles;

    km;

}Unit
Run Code Online (Sandbox Code Playgroud)

在其他课程中我应该可以打电话Distance.Unit.km或里程:

Distance *a = [[Distance alloc] initWithDistance: 10.2 andUnit: Distance.Unit.km];
Run Code Online (Sandbox Code Playgroud)

ken*_*ytm 6

在C中,a enum不会使其值"合格".你必须使用它

Distance *a = [[Distance alloc] initWithDistance: 10.2 andUnit:km];
//                                                             ^^
//                                                             no Distance.Unit.stuff
Run Code Online (Sandbox Code Playgroud)