无法识别的选择器 - 异常
问题描述:
我有这样的例外:无法识别的选择器 - 异常
2016年11月27日16:37:28.416 Participact [8846:501284] *** NSForwarding: 警告:对象类的0x7ff90da33110“Participact.UserResult “不 没有实现methodSignatureForSelector: - 麻烦了 无法识别的选择 - [Participact.UserResult replacementObjectForKeyedArchiver:]
生成方式:
let placesDataFinal = NSKeyedArchiver.archivedDataWithRootObject(self.userResults)
NSUserDefaults.standardUserDefaults().setObject(placesDataFinal, forKey: "places")
哪里UserResults
是这个类:
class UserResult: JSONObject {
lazy private(set) var taskId: Int? = self.deserializeJSON("TaskId")
lazy private(set) var aggregato: Boolean? = self.deserializeJSON("Aggregato")
lazy private(set) var tipo: String? = self.deserializeJSON("Tipo")
lazy private(set) var valori: [String]? = self.deserializeJSON("Valori")
}
我认为,对修复:从UserResult
由NSObject
继承,但我不能,因为它的JSONObject冲突。
我该怎么办?
答
UserResult类必须实现协议NSCoding才能存档NSKeyedArchiver。
看到这个link就如何落实该协议,基本上你必须实现的方法:
func encodeWithCoder(aCoder: NSCoder)
init(coder aDecoder: NSCoder)