将C ++枚举传递给Objective-C构造函数以设置属性

时间:2013-09-02 05:22:12

标签: c++ objective-c

采用以下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;
}

虽然它运作良好,我不禁觉得它有点笨拙和未经定义。我确信有些东西我只是没想到。有没有更优雅的方式来完成我正在寻找的东西?谢谢!

0 个答案:

没有答案