首页 文章

NSCoding协议一致性的类扩展

提问于
浏览
4

我需要为NSCoding协议一致性扩展一个类 . 这是我试过的:

extension GTLTasksTask : NSCoding {

    public func encodeWithCoder(aCoder: NSCoder) {

    }

    public convenience init(coder aDecoder: NSCoder) {

    }

}

但是我得到两个错误:1 . 初始化程序要求'init(coder:)'只能通过非终结类'GTLTasksTask'定义中的 required 初始化程序来满足.2 . 'GTLTasksTask'的便捷初始化程序必须委托(带'self.init')

此示例中的SomeClass没有指定的初始化程序,尽管它的超类具有init方法 . 但是根据swift文档的便利,初始化者不能调用super.init . 我尝试将init(编码器)作为指定的初始化器,但扩展中不允许这样做

是否无法通过扩展名将其与NSCoding相符合?

1 回答

  • -4

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

    extension GLTasksTask : NSCoding {
    
        public func encodeWithCoder(aCoder: NSCoder) {
    
        }
    
        public required convenience init(coder aDecoder: NSCoder) {
    
        }
    }
    

相关问题