у меня есть json data
, который дает следующую информацию:
let data = [
{
"QuestionTitle" : "Entomology is the science that studies",
"Id" : 205,
"Options" : [
{ "Option" : "Insects", "Id" : 810 },
{ "Option" : "The origin and history of technical and scientific terms", "Id" : 811 },
{ "Option" : "The formation of rocks", "Id" : 812 },
{ "Option" : "Behavior of human beings", "Id" : 809 }
]
},
{
"QuestionTitle" : "A train running at the speed of 60 km\/hr crosses a pole in 9 seconds. What is the length of the train?",
"Id" : 199,
"Options" : [
{ "Option" : "120 metres", "Id" : 785 },
{ "Option" : "324 metres", "Id" : 787 },
{ "Option" : "180 metres", "Id" : 786 },
{ "Option" : "150 metres", "Id" : 788 }
]
}
]
Я использую свифтиджсон. Я хочу сохранить весь массив с помощью nsuserdefaults.
GlobalVar.defaults.set(json, forKey: "questionArray")
GlobalVar.defaults.synchronize()
Однако я получаю сообщение об ошибке
«[Пользовательские настройки] Попытка установить объект, не входящий в список свойств».
Пожалуйста, помогите, я новичок в Swift. Я также проверил другие подобные вопросы, но, похоже, не работает.
UserDefaults
можно сохранять только объектыproperty list
типов. Чтобы сохранить пользовательский класс/объект, вам необходимо преобразовать его вNSData
, заархивировав. См. этот ответ - person Dávid Pásztor   schedule 02.08.2017