我收到以下错误:
类型'TestClass'不符合协议'NSCoding'
NSCoding只需要两种方法,两种方法都存在。我错过了什么?
class TestClass: NSObject, NSCoding {
var Property1:Double? = 0.00
required init(code aDecoder: NSCoder) {
if let priceCoded = aDecoder.decodeObjectForKey("Property1") as? Double {
self.Property1 = priceCoded
}
}
func encodeWithCoder(aCoder: NSCoder){
if let priceEncoded = self.Property1 {
aCoder.encodeObject(priceEncoded, forKey: "Property1")
}
}
}
答案 0 :(得分:1)
你错过了' r'参数名称中的符号。将初始化程序名称更新为:
required init(coder aDecoder: NSCoder)
它会起作用
答案 1 :(得分:0)
我用这个来解决这个问题: -
required init?(coder aDecoder: NSCoder) {
}
func encodeWithCoder(aCoder: NSCoder) {
}
XCode 8.0(8A218a),swift 3