我需要为NSCoding协议一致性扩展一个类。这就是我试过的:
extension GTLTasksTask : NSCoding {
public func encodeWithCoder(aCoder: NSCoder) {
}
public convenience init(coder aDecoder: NSCoder) {
}
}
但我得到两个错误:
1.初始化程序要求&#init;(编码器:)'只能通过非最终类定义中的required
初始化程序来满足GTLTasksTask'
2. GTLTasksTask'的便利初始化程序。必须委托(使用' self.init')
此示例中的SomeClass没有指定的初始化程序,尽管它的超类具有init方法。但是根据swift文档的便利,初始化者不能调用super.init。 我尝试将init(编码器)作为指定的初始化程序,但在扩展名中不允许这样做
是否无法通过扩展名将其与NSCoding相符合?
答案 0 :(得分:-4)
添加Require
关键字。使用xCode 6.0测试(在游乐场测试)
extension GLTasksTask : NSCoding {
public func encodeWithCoder(aCoder: NSCoder) {
}
public required convenience init(coder aDecoder: NSCoder) {
}
}