归档时如何解决“在父类中找不到'init(domain:code:userInfo :)'”的问题?

时间:2019-05-07 11:15:00

标签: swift swift4

我正在为现有项目从Swift 3到Swift 4.2进行Swift迁移。我已经执行了Xcode 10.1 Assistant,并且我的项目在调试中可以正确编译,但是当我尝试对其进行存档时,会出现标题中的错误。

我的项目包括

  • 主项目->迁移到Swift 4.2
  • Utilities Pod-> Swift 3.2

在“实用工具”窗格中,有一个NSError子类(CMError)

public class CMError: NSError {

    // MARK: - Initializers

    public convenience init(type: CMErrorType) {
        self.init(domain: CMErrorDomain,
                  code: type.rawValue,
                  userInfo: type.localizedUserInfo())
    }

    public convenience init(type: CMErrorType, code: String) {
        self.init(domain: CMErrorDomain,
                  code: type.rawValue,
                  userInfo: type.localizedUserInfo(code: code))
    }

    public convenience init(type: CMErrorType, code: String, localizedDescription: String) {
        self.init(domain: CMErrorDomain,
                  code: type.rawValue,
                  userInfo: type.localizedUserInfo(code: code,
                                                   localizedDescription: localizedDescription))
    }
}

这是我在归档时收到的错误。

enter image description here

enter image description here

有人知道是什么问题吗?

谢谢

1 个答案:

答案 0 :(得分:0)

最后,我在CMError子类中添加了NSError初始化的替代,并成功将其归档。

public override init(domain: String, code: Int, userInfo dict: [String : Any]? = nil) {
    super.init(domain: domain, code: code, userInfo: dict)
}