我enum在我的Swift类中声明了一个变量.我需要使用编码和解码它NSCoder.对于我应该使用的这个说法有很多问题rawValue.Enum声明如下:
enum ConnectionType {
case Digital, PWM
}
Run Code Online (Sandbox Code Playgroud)
但是在Swift 1.2中没有这样的初始化器.在Swift 1.2和Xcode 6.3中如何做到这一点?
你必须为枚举定义一个"原始类型",例如
enum ConnectionType : Int {
case Digital, PWM
}
Run Code Online (Sandbox Code Playgroud)
然后你可以用它编码
aCoder.encodeInteger(type.rawValue, forKey: "type")
Run Code Online (Sandbox Code Playgroud)
和解码
type = ConnectionType(rawValue: aDecoder.decodeIntegerForKey("type")) ?? .Digital
Run Code Online (Sandbox Code Playgroud)
其中??如果解码的整数对枚举无效,则使用nil-coalescing运算符提供默认值.
| 归档时间: |
|
| 查看次数: |
885 次 |
| 最近记录: |