2016-11-27 91 views
0

我有这样的例外:无法识别的选择器 - 异常

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") 
} 

我认为,对修复:从UserResultNSObject继承,但我不能,因为它的JSONObject冲突。

我该怎么办?

回答

2

UserResult类必须实现协议NSCoding才能存档NSKeyedArchiver。

看到这个link就如何落实该协议,基本上你必须实现的方法:

func encodeWithCoder(aCoder: NSCoder) 
init(coder aDecoder: NSCoder) 
相关问题