为什么类不符合NSCoding?

时间:2015-10-13 03:56:55

标签: swift2 nscoding

我收到以下错误:

  

类型'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")
        }
    }
}

2 个答案:

答案 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