我想扩展一个框架类(我不想直接编辑源代码),并使其符合NSCoding
.
基本上,这是我所处情况的简化:
/* Can't be edited. */
class Car: NSObject {
var color: String?
}
/* Can be edited */
extension Car: NSCoding {
init(coder aDecoder: NSCoder) {
}
func encodeWithCoder(aCoder: NSCoder) {
}
}
问题是init(coder aDecoder: NSCoder)
,根据头文件,一个designated initializer
(这不是很奇怪吗?不应该是一个convenience initializer
吗?)。但是,文档说扩展不能添加新的指定初始化程序。
我的英语不是很完美,也许我错过了什么……或者真的不可能吗?