Ich versuche derzeit, eine benutzerdefinierte Swift-Klasse in NSUserDefaults zu speichern. Hier ist der Code von meinem Spielplatz:
import Foundation
class Blog : NSObject, NSCoding {
var blogName: String?
override init() {}
required init(coder aDecoder: NSCoder) {
if let blogName = aDecoder.decodeObjectForKey("blogName") as? String {
self.blogName = blogName
}
}
func encodeWithCoder(aCoder: NSCoder) {
if let blogName = self.blogName {
aCoder.encodeObject(blogName, forKey: "blogName")
}
}
}
var blog = Blog()
blog.blogName = "My Blog"
let ud = NSUserDefaults.standardUserDefaults()
ud.setObject(blog, forKey: "blog")
Wenn ich den Code ausführe, wird der folgende Fehler angezeigt
Die Ausführung wurde unterbrochen, Grund: Signal SIGABRT.
in der letzten Zeile ( ud.setObject
...)
Der gleiche Code stürzt auch in einer App mit der Nachricht ab
"Eigenschaftsliste für Format ungültig: 200 (Eigenschaftslisten dürfen keine Objekte vom Typ 'CFType' enthalten)"
Kann jemand helfen? Ich verwende Xcode 6.0.1 auf Maverick. Vielen Dank.