我目前正在尝试将一个定制的 Swift 类保存为 NSUserDefault:
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,谢谢。