我的Swift类中有一个d = { order: str(i) }
并且声明了一个变量。我需要使用enum
对其进行编码和解码。关于这个说法有很多问题我应该使用NSCoder
。 rawValue
以下列方式声明:
Enum
但是在Swift 1.2中没有这样的初始化。如何在Swift 1.2和Xcode 6.3中做到这一点?
答案 0 :(得分:6)
您必须为枚举定义“原始类型”,例如
enum ConnectionType : Int {
case Digital, PWM
}
然后你可以用
编码aCoder.encodeInteger(type.rawValue, forKey: "type")
并用
解码type = ConnectionType(rawValue: aDecoder.decodeIntegerForKey("type")) ?? .Digital
其中nil-coalescing运算符??
用于提供默认值
如果解码的整数对枚举无效。