Wie zum speichern von array-Liste von benutzerdefinierten Objekten zu NSUserDefaults?

class Item
{
    var name: String
    var collectionId: Int

    init(name: String, collectionId: Int) {
        self.name = name
        self.collectionId = collectionId

    }
}

class ViewController:UIViewController
{
    var itemList = [Item]()

    func recievedResults()
    {
        let defaults = NSUserDefaults.standardUserDefaults()
        defaults.setObject(self.itemList, forKey: "myList")
    }        
}

Bekomme ich die Fehlermeldung: "property-Listen nicht enthalten Objekte vom Typ 'CFType'"

Wie kann ich speichern und erhalten die itemList zu NSUserDefaults?

  • In Objective-c, NSUserdefaults akzeptiert nur primitif Daten: NSArray, NSString ,... Zu speichern benutzerdefinierte Objekt in NSUserdefaults, verwenden Sie die NSKeyedArchiver (und NSKeyedUnarchiver) mit dem hinzufügen von Coder & Decoder-Methode, um Ihre Klasse. Ich denke, es gilt die gleiche Regel in Swift.
  • Sie sollten nicht speichern Sie ein NSArray in NSUserDefaults. Verwenden Sie eine plist statt.
InformationsquelleAutor Imran | 2015-03-23
Schreibe einen Kommentar