在将服务器响应存储在userdefaults中时......我收到错误

时间:2018-12-13 07:37:30

标签: swift3

虽然将服务器响应存储在userdefaults中。...我遇到了错误........

  

由于未捕获的异常而终止应用程序   “ NSInvalidArgumentException”,原因:“-[_ SwiftValue   encodeWithCoder:]:无法识别的选择器已发送到实例   0x600002fe7720'

这是我的代码

if let responseObject = response.array  {

   print(responseObject)

  let bookingDetails = responseObject[0].dictionary!

  let myData = NSKeyedArchiver.archivedData(withRootObject:bookingDetails)
                    UserDefaults.standard.set(myData, forKey: "userJson")

}

2 个答案:

答案 0 :(得分:0)

要能够归档自定义类,必须采用NSCoding。这就是错误消息告诉您的内容。

JSON(在SwiftyJSON中)是一个结构,完全无法使用NSKeyedArchiver进行存档。

拖放SwiftyJSONNSCoding,改用Codable

答案 1 :(得分:-1)

请对响应进行编码,并将其存储在userDefaults中,当您要使用这些值时,将其获取并解码。

它可能会帮助您。