Tôi hiện đang cố gắng lưu một lớp Swift tùy chỉnh vào NSUserDefaults. Đây là mã từ Playground của tôi:
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")
Khi tôi chạy mã, tôi gặp lỗi sau
Quá trình thực thi bị gián đoạn, lý do: tín hiệu SIGABRT.
ở dòng cuối cùng ( ud.setObject
...)
Mã tương tự cũng bị lỗi khi ở trong một ứng dụng có thông báo
"Danh sách thuộc tính không hợp lệ cho định dạng: 200 (danh sách thuộc tính không được chứa các đối tượng thuộc loại 'CFType')"
Ai có thể giúp đỡ? Tôi đang sử dụng Xcode 6.0.1 trên Maverick. Cảm ơn.