【发布时间】:2018-02-22 18:34:26
【问题描述】:
我有这个枚举:
enum DMED: String {
case money = "DMMoney"
case netWorth = "DMNetWorth"
case businessNum = "DMBusinessNum"
case generalEPM = "DMGeneralEPM"
case generalThreat = "DMGeneralThreat"
}
在我的课程中,我有这个解码器功能:
required init?(coder aDecoder: NSCoder) {
self.money = (aDecoder.decodeDouble(forKey: DMED.money.rawValue))
self.netWorth = (aDecoder.decodeDouble(forKey: DMED.netWorth.rawValue))
self.businessNum = (aDecoder.decodeInteger(forKey: DMED.businessNum.rawValue))
self.generalEPM = (aDecoder.decodeInteger(forKey: DMED.generalEPM.rawValue))
self.generalThreat = (aDecoder.decodeInteger(forKey: DMED.generalThreat.rawValue))
}
我很想知道是否可以从所有枚举调用中删除 .rawValue。感谢您的帮助。
【问题讨论】:
-
因为你需要一个字符串键来解码你必须使用
rawValue的值,就像你现在一样。当然,您可以将变量添加到枚举中,例如var key: String,但您仍然必须使用DMED.money.key。