オブジェクト 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")
}
}
私の質問は次のとおりです。アーカイブされたオブジェクトに給与を含むメソッドと含まないメソッドの 2 つの別個の 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 に複数のアーカイブ メソッドを実装する最善の方法は何ですか?