Swift 编码 class 包含另一个 class

Swift encode class containing another class

我正在尝试使用 swift 对 class 中的数据进行编码,但我的 class 包含另一个 class。是否可以编码第二个 class?

当然可以。它也应该实现 NSCoding。例如,我的 FQGetPermissionOperation 包括 encodes/decodes FQUploadTask 对象。 FQUploadTask同样实现了NSCoding,继承了NSObject。

class FQGetPermissionOperation : NSObject, NSCoding {
let uploadTask: FQUploadTask

required init?(coder aDecoder: NSCoder) {
    uploadTask = aDecoder.decodeObjectForKey("uploadTask") as! FQUploadTask
    super.init(coder: aDecoder)
}

override func encodeWithCoder(aCoder: NSCoder) {
    aCoder.encodeObject(uploadTask, forKey: "uploadTask")
    super.encodeWithCoder(aCoder)
}
// Some other code
}