采用以下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;
}
虽然它运作良好,我不禁觉得它有点笨拙和未经定义。我确信有些东西我只是没想到。有没有更优雅的方式来完成我正在寻找的东西?谢谢!