我目前正在尝试将一个自定义的Swift类保存到NSUserDefaults中。以下是来自我的Playground的代码:
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")
运行代码时出现以下错误:
执行被中断,原因:信号SIGABRT。
在最后一行 (ud.setObject
...)。
同样的代码也会在应用程序中崩溃,并显示以下消息:
"属性列表格式无效:200 (属性列表不能包含类型为'CFType'的对象)"
有人可以帮忙吗?我正在Maverick上使用Xcode 6.0.1。谢谢。