我有一个名为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()
我已经看过X1E0F1X和X1E1F1X,但我没有运气,我发现它很难理解。
当我只是尝试保存到NSUserDefaults时,系统会告诉我以下信息:
Attempt to set a non-property-list object (
"PersonApp.Person"
) as an NSUserDefaults/CFPreferences value for key personArray
有人能够帮助我通过NSUserDefaults实际保存自定义对象(自定义词典)数组吗?
3条答案
按热度按时间3pvhb19x1#
您的Person类应如下所示:
雨燕三号
这里有一个从NSUserDefaults保存和检索数组的示例:
雨燕四号
hjqgdpho2#
您需要实现
NSCoding
协议来将自定义对象存储到NSUserDefaults
中。jjjwad0x3#
雨燕4
看这个答案就明白了Save Array of Custom Swift object to userDefaults