我有这个异常(exception):
2016-11-27 16:37:28.416 Participact[8846:501284] *** NSForwarding: warning: object 0x7ff90da33110 of class 'Participact.UserResult' does not implement methodSignatureForSelector: -- trouble ahead Unrecognized selector -[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")
}
我认为修复方法:通过 NSObject
从 UserResult
继承,但我不能,因为它与 JSONObject 冲突。
我能做什么?
最佳答案
UserResult 类必须实现 NSCoding 协议(protocol)才能使用 NSKeyedArchiver 进行存档。
查看此 link关于如何实现协议(protocol),基本上你必须实现这些方法:
func encodeWithCoder(aCoder: NSCoder)
init(coder aDecoder: NSCoder)
关于ios - 无法识别的选择器 - 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40830881/