1

以下面的 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;
}

虽然它工作得很好,但我不禁觉得它有点笨拙和不精致。我确定有些事情我只是没有想到。有没有更优雅的方式来完成我正在寻找的东西?谢谢!

4

0 回答 0