在Swift 1.2中编码和解码枚举类型

3

我在我的Swift类中有一个枚举和一个变量声明。我需要使用NSCoder对其进行编码和解码。有很多关于此的问题,说我应该使用rawValueEnum声明如下:

enum ConnectionType {
    case Digital, PWM
}

但在Swift 1.2中没有这样的初始化器。在Swift 1.2和Xcode 6.3中如何实现呢?

1个回答

6
您需要为枚举定义一个“原始类型”,例如:

您必须为枚举定义一个“原始类型”,例如:

enum ConnectionType : Int {
    case Digital, PWM
}

然后您可以使用编码进行加密。
aCoder.encodeInteger(type.rawValue, forKey: "type")

并使用解码

type = ConnectionType(rawValue: aDecoder.decodeIntegerForKey("type")) ?? .Digital

在枚举类型中,如果解码的整数无效,则使用空合并运算符??提供默认值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接