При сохранении ответа сервера в userdefaults .... Я получаю ошибку - PullRequest
0 голосов
/ 13 декабря 2018

При сохранении ответа сервера в userdefaults .... Я получаю сообщение об ошибке ........

Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '- [_ SwiftValueencodeWithCoder:]: нераспознанный селектор отправлен в экземпляр 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 голосов
/ 13 декабря 2018

Чтобы иметь возможность архивировать пользовательские классы, класс должен принять NSCoding.Это то, что сообщается в сообщении об ошибке.

JSON (в SwiftyJSON) - это структура, ее нельзя архивировать с NSKeyedArchiver.

Drop SwiftyJSON и NSCodingвместо этого используйте Codable.

0 голосов
/ 13 декабря 2018

Пожалуйста, закодируйте ответ и сохраните его в userDefaults, а когда вы хотите использовать эти значения, извлеките его и декодируйте.

Может тебе поможет.

...