NSCoding协议一致性的类扩展

时间:2014-10-24 19:25:10

标签: ios swift

我需要为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相符合?

1 个答案:

答案 0 :(得分:-4)

添加Require关键字。使用xCode 6.0测试(在游乐场测试)

extension GLTasksTask : NSCoding {

    public func encodeWithCoder(aCoder: NSCoder) {

    }

    public required convenience init(coder aDecoder: NSCoder) {

    }
}