У меня есть собственный класс под названием Person
, который хранит различные атрибуты о ком-то, когда они вводят информацию.
class Person {
// Person dictionary variable
var name: String?
var age: String?
var html_url: String?
init(json: NSDictionary) { // Dictionary object
self.name = json["name"] as? String
self.age = json["age"] as? String
self.html_url = json["html_url"] as? String // Location of the JSON file
}
}
Как только словарь создан, он помещается в массив. У меня возникают проблемы при сохранении массива в NSUserDefaults
при нажатии кнопки.
personArray.append(newPerson) // newPerson = dictionary of attributes
NSUserDefaults.standardUserDefaults().setObject(personArray, forKey: "personArray")
NSUserDefaults.standardUserDefaults().synchronize()
Я посмотрел на Как хранить пользовательские объекты в NSUserDefaults и Сохранение пользовательского класса SWIFT с NSCoding в UserDefaults , но мне не повезло, и я нахожу его трудно понять.
Мне, когда я просто пытаюсь сохранить в NSUserDefaults, мне говорят следующее:
Attempt to set a non-property-list object (
"PersonApp.Person"
) as an NSUserDefaults/CFPreferences value for key personArray
Может ли кто-нибудь помочь мне реально сохранить массив пользовательских объектов (пользовательских словарей) через NSUserDefaults?