以下面的 C++ 枚举为例,它是作为从外部库运行的算法的结果生成的。然后,我将生成的枚举传递给 Objective-C 类的构造函数,其中枚举结果将确定新对象的属性值。
enum vehicle_t {
car,
truck,
train,
plane
};
下面是来自 Objective-C 类的构造函数的抽象:
- (id)initWithVehicle:(vehicle_t)vehicle
{
self = [super init];
if (self) {
switch (vehicle) {
case 0:
_weight = @"";
_size = @"";
_style = @"";
_speed = @"";
_origin = @"";
break;
case 1:
_weight = @"";
_size = @"";
_style = @"";
_speed = @"";
_origin = @"";
break;
...
default:
break;
}
}
return self;
}
虽然它工作得很好,但我不禁觉得它有点笨拙和不精致。我确定有些事情我只是没有想到。有没有更优雅的方式来完成我正在寻找的东西?谢谢!