【发布时间】:2015-05-12 23:14:07
【问题描述】:
假设我有一个对象 Person。 (我知道 Person 有语法错误。请忽略这些。)
class Person: NSObject, NSCoding {
var name : String
var salary: NSNumber
// MARK: NSCoding
required convenience init(coder decoder: NSCoder) {
self.init()
self.name = decoder.decodeObjectForKey("name") as String
self.salary = decoder.decodeObjectForKey("salary") as NSNumber
}
func encodeWithCoder(coder: NSCoder) {
coder.encodeObject(self.name, forKey: "name")
coder.encodeObject(self.salary, forKey: "salary")
}
}
我的问题是: 是否可以有两个单独的 encodeWithCoder 方法..一个在存档对象中包含薪水,一个不包含。比如:
func encodeWithCoderPrivate(coder: NSCoder) {
coder.encodeObject(self.name, forKey: "name")
coder.encodeObject(self.salary, forKey: "salary")
}
func encodeWithCoderPublic(coder: NSCoder) {
coder.encodeObject(self.name, forKey: "name")
}
在 NSObject 中实现多个归档方法的最佳方法是什么,以限制写入归档的字段?
【问题讨论】:
标签: ios swift nscoding nscoder