基于Enum Swift自动将值分配给对象

时间:2018-05-30 09:52:50

标签: swift enums

所以我有这个对象

class StationDetailsDTO: Object, Mappable {
    @objc dynamic var stateID = 0
    @objc dynamic var stateName = String()
}

此对象将从API响应对象中分配。

现在问题是API只返回stateID,没有stateName。

所以我想要实现的是,有没有可能的方法根据自己创建的Enum自动分配stateName?

因为我现在正在使用正常的if-else检查

If stateID == 0 {
 stateName = "A" 
}
else if stateID == 1 {
 stateName = "B"
}

我觉得这不是最好的实施方法。我正在考虑使用Enum。我已经创建了一个Enum

enum State: String {
    case A 
    case B
    case C
}

我正在考虑使用案例A(值),但不确定如何实现它。

任何人都可以指导我如何实现这一目标吗?或者还有其他我可以使用的最佳方法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

尝试didSet,并创建可能值的数组

@objc dynamic var stateID = 0
{
    didSet {

        stateName = arr[stateID]
    }
}

答案 1 :(得分:0)

如果您只打算使用枚举,我认为创建枚举不是一个好主意,而是可以在初始化期间使用switch语句使用私有函数:

val signedTransaction = serviceHub.validatedTransactions.getTransaction(transactionHash)
val ledgerTransaction = signedTransaction.toLedgerTransaction(serviceHub)