我有这个例外:
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冲突。
我该怎么办?
答案 0 :(得分:2)
UserResult类必须实现协议NSCoding才能使用NSKeyedArchiver进行存档。
关于如何实现协议,请参阅此link,基本上您必须实现这些方法:
func encodeWithCoder(aCoder: NSCoder)
init(coder aDecoder: NSCoder)