gpt4 book ai didi

ios - NSCoding 协议(protocol)一致性的类扩展

转载 作者:搜寻专家 更新时间:2023-10-31 21:49:37 25 4
gpt4 key购买 nike

我需要扩展一个类以符合 NSCoding 协议(protocol)。这是我尝试过的:

extension GTLTasksTask : NSCoding {

public func encodeWithCoder(aCoder: NSCoder) {

}

public convenience init(coder aDecoder: NSCoder) {

}

}

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

这个例子中的 SomeClass 没有指定的初始化器,尽管它的父类(super class)有一个 init 方法。但是根据 swift 文档,便利初始化器不能调用 super.init。我尝试使 init(coder) 成为指定的初始化程序,但在扩展中不允许这样做

是否无法通过扩展使其符合 NSCoding?

最佳答案

添加 Require 关键字。使用 xCode 6.0 测试(在 Playground 上测试)

extension GLTasksTask : NSCoding {

public func encodeWithCoder(aCoder: NSCoder) {

}

public required convenience init(coder aDecoder: NSCoder) {

}
}

关于ios - NSCoding 协议(protocol)一致性的类扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26554903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com