我正在使用以下 Swift 代码解压缩 Swift 类:
required convenience init(coder decoder: NSCoder) {
self.init()
horseID = decoder.decodeIntegerForKey("horseID")
name = decoder.decodeObjectForKey("name") as String!
// if the thumb key does not exist, the following line crashes
thumb = decoder.decodeObjectForKey("thumb") as UIImage!
}
“拇指”类成员是后来添加的。我有一个较旧的存档文件,其中没有拇指数据。Apple 的文档说,取消归档不存在的密钥会返回 nil。这是熟悉的 Objective-C 行为。我的 Swift 代码崩溃并出现错误代码:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)。
从 更改as
为as?
并不能解决问题。
这使得在新版本中扩展数据模型变得困难。难道我做错了什么?我是斯威夫特的新手。