Actualmente estoy tratando de guardar una clase Swift personalizada en NSUserDefaults. Aquí está el código de mi zona de juegos:
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")
Cuando ejecuto el código, aparece el siguiente error
La ejecución fue interrumpida, motivo: señal SIGABRT.
en la última línea ( ud.setObject
...)
El mismo código también falla cuando está en una aplicación con el mensaje
"Lista de propiedades no válida para el formato: 200 (las listas de propiedades no pueden contener objetos de tipo 'CFType')"
¿Alguien puede ayudar? Estoy usando Xcode 6.0.1 en Maverick. Gracias.