【发布时间】:2017-12-04 21:46:48
【问题描述】:
我正在尝试使用NSKeyedArchiver 来“归档”一个简单的字典。键是String 类型,值是enum。
以下示例说明了我正在尝试做的事情:
import Foundation
enum Friend: String, Codable {
case Ben, Max
}
let friends: [String: Any] = [ "bestFriend" : Friend.Ben ]
let archivedFriends = NSKeyedArchiver.archivedData(withRootObject: friends)
此代码可以复制到游乐场,结果将是以下错误:
错误:执行被中断,原因:信号 SIGABRT。
遗憾的是,我无法复制堆栈跟踪,所以我不得不创建一个屏幕截图:
为了测试enum 确实是问题,我将代码更改为以下内容:
import Foundation
let friends: [String: Any] = [ "bestFriend" : "Ben" ]
let archivedFriends = NSKeyedArchiver.archivedData(withRootObject: friends)
这行得通,所以问题是:
我在第一个代码示例中缺少什么让 NSKeyedArchiver 使用给定的字典?
【问题讨论】:
标签: swift nskeyedarchiver