1
我必须符合NSCoding
类:不能存储对象用户默认
class Middleware : NSObject, NSCoding {
var name: String
var uri: String
// MARK: NSCoding
required init?(coder aDecoder: NSCoder) {
name = aDecoder.decodeObject(forKey: "name") as! String
uri = aDecoder.decodeObject(forKey: "uri") as! String
}
func encode(with: NSCoder) {
with.encode(name, forKey: "name")
with.encode(uri, forKey: "uri")
}
}
存储在UserDefaults该类失败:
userDefaults.set(Middleware(name: "Volkszaehler Demo", uri: "http://demo.volkszaehler.org/middleware.php"), forKey: "middlewares")
给出:
* **由于未捕获异常'NSInvalidArgumentException'而终止应用程序,原因:'尝试为键中间件插入非属性列表对象'
我得到'[_SwiftValue encodeWithCoder:]:无法识别的选择器发送到实例' – Cmag