2016-06-05 9 views
0

ich eine Klasse erstellt haben student genannt und ich bin auf der Suche NSUserDefaults verwenden zum Speichern und Abrufen eines array of student.ein Array von Objekten abrufen NSUserDefaults mit

//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") 

Ich erhalte die Fehlermeldung: Cannot assign value of type 'AnyObject?' to type '[student]'

Antwort

2

NSUserDefaults.standardUserDefaults().objectForKey("class") erwartet optionales Objekt vom Typ AnyObject. Sie können unwrap zwingen, in array of student.

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

Aber Sie sollten immer prüfen, ob seine nil:

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

Gerade die letzte Zeile Code mit dem folgenden Code ändern, werden Sie Ihre Fehler beheben:

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

Hoffe, das wird dir helfen.