我需要在NSUserDefaults
数组或其他数据结构中保存以使用以下格式保存对象:
name = "myName", lastName = "myLastName"
我尝试使用一组数组执行此操作,但这不能保存在NSUserDefaults
中。
现在我正在尝试使用带结构的自定义类来创建对象并附加到数组,但在尝试将其保存到NSUserDefaults
时也会出错。我需要保存这个结构,但我不知道什么是正确的形式。我该怎么做?
var taskMgr: TaskManager = TaskManager()
struct task {
var name = "Un-Named"
var lastName = "Un-lastNamed"
}
class TaskManager: NSObject {
var tasks : [task] = []
func addTask(name : String, lastName: String){
tasks.append(task(name: name, lastName: desc))
}
}
答案 0 :(得分:5)
NSUserDefaults
期望存储的对象都是属性列表对象,即NSArray
,NSDictionary
,NSString
,NSNumber
,{{1}的实例},或NSData
。你的结构不是其中之一。在存储对象之前,您需要将对象转换为属性列表类型。一种方法是使用NSDate
和NSKeyedArchiver
协议将结构编写到NSCoding
的实例中。