2016-11-27 110 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) 
相關問題