2016-06-05 2 views
0

я создал класс под названием student и я ищу, чтобы использовать NSUserDefaults для хранения и извлечения array of student.Получить массив объектов с помощью NSUserDefaults

//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]'

ответ

2

NSUserDefaults.standardUserDefaults().objectForKey("class") ОЖИДАЕТ необязательный объект типа AnyObject. Вы можете заставить развертку в array of student.

//Retrieve data 
classonestudents = NSUserDefaults.standardUserDefaults().objectForKey("class") as! [student] 

Но вы всегда должны проверить, если его ноль:

if let students = NSUserDefaults.standardUserDefaults().objectForKey("class") as? [student] 
{ 
    classonestudents = students 
} 
1

Просто изменив последнюю строку кода с помощью следующего кода будет исправить вашу ошибку:

classonestudents = NSUserDefaults.standardUserDefaults().objectForKey("class") as! [student] 

Надеюсь, это поможет вам.

Смежные вопросы