使用 NSUserDefaults 检索对象数组
Retrieve an array of objects using NSUserDefaults
我创建了一个名为 student
的 class,我希望使用 NSUserDefaults
来存储和检索 array of student.
//Establish array
var classonestudents = [student] ()
class student {
var name = String ()
var C4Role = 0
var LastTeam = 0
}
//This array is filled up by the user
//Store data
NSUserDefaults.standardUserDefaults().setObject(classonestudents, forKey: "class")
//Retrieve data
classonestudents = NSUserDefaults.standardUserDefaults().objectForKey("class")
我收到错误消息:Cannot assign value of type 'AnyObject?' to type '[student]'
NSUserDefaults.standardUserDefaults().objectForKey("class")
需要 AnyObject
类型的可选对象。您可以在 array of student.
中强制解包
//Retrieve data
classonestudents = NSUserDefaults.standardUserDefaults().objectForKey("class") as! [student]
但是你应该经常检查它是否为 nil :
if let students = NSUserDefaults.standardUserDefaults().objectForKey("class") as? [student]
{
classonestudents = students
}
只需将最后一行代码更改为以下代码即可修复您的错误:
classonestudents = NSUserDefaults.standardUserDefaults().objectForKey("class") as! [student]
希望对您有所帮助。
我创建了一个名为 student
的 class,我希望使用 NSUserDefaults
来存储和检索 array of student.
//Establish array
var classonestudents = [student] ()
class student {
var name = String ()
var C4Role = 0
var LastTeam = 0
}
//This array is filled up by the user
//Store data
NSUserDefaults.standardUserDefaults().setObject(classonestudents, forKey: "class")
//Retrieve data
classonestudents = NSUserDefaults.standardUserDefaults().objectForKey("class")
我收到错误消息:Cannot assign value of type 'AnyObject?' to type '[student]'
NSUserDefaults.standardUserDefaults().objectForKey("class")
需要 AnyObject
类型的可选对象。您可以在 array of student.
//Retrieve data
classonestudents = NSUserDefaults.standardUserDefaults().objectForKey("class") as! [student]
但是你应该经常检查它是否为 nil :
if let students = NSUserDefaults.standardUserDefaults().objectForKey("class") as? [student]
{
classonestudents = students
}
只需将最后一行代码更改为以下代码即可修复您的错误:
classonestudents = NSUserDefaults.standardUserDefaults().objectForKey("class") as! [student]
希望对您有所帮助。