我见过几个类似于我的问题;然而,那些与swift 2/1有关,我现在正在使用swift 3.我相信Apple已稍微改变了它。
class Person: NSObject, NSCoding {
var signature: UIImage
init(signature: UIImage) {
self.signature = signature
}
required convenience init(coder aDecoder: NSCoder) {
let signature = aDecoder.decodeObject(forKey: "signature") as! UIImage
self.init(signature: signature)
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encode(signature, forKey: "signature")
}
}
你会注意到Swift 3现在如何强迫我使用required convenience init(
而不是required init(
。也许这与它有关。
如何解决此问题?谢谢!
答案 0 :(得分:33)
Swift 3中的encode
方法已重命名为
func encode(with aCoder: NSCoder)
如果不符合错误,您可以轻松找出缺少哪些必需的方法