Swift 使用未实现的初始值设定项';初始(样式:)和#x27;对于使用Xcode 11 beta 2的类

Swift 使用未实现的初始值设定项';初始(样式:)和#x27;对于使用Xcode 11 beta 2的类,swift,Swift,我得到了错误 对类使用未实现的初始值设定项“init(style:)” 线程1:EXC_BAD_指令(代码=EXC_I386_INVOP,子代码=0x0) 我以前使用过的每一个Xcode都没有出现这个错误。我不应该得到这个错误,因为我使用的是我自己指定的初始值设定项。通过运行此git repo:,可以复制此错误。有关守则如下: import UIKit class ViewController: UIViewController { override func viewDidAppe

我得到了错误

对类使用未实现的初始值设定项“init(style:)”

线程1:EXC_BAD_指令(代码=EXC_I386_INVOP,子代码=0x0)

我以前使用过的每一个Xcode都没有出现这个错误。我不应该得到这个错误,因为我使用的是我自己指定的初始值设定项。通过运行此git repo:,可以复制此错误。有关守则如下:

import UIKit

class ViewController: UIViewController {

    override func viewDidAppear(_ animated: Bool) {
        Timer.scheduledTimer(withTimeInterval: 0.5, repeats: false) { (_) in
            let someInitializable: UIViewControllerInitializable.Type = SomeViewController.self

            self.present(someInitializable.init(), animated: true, completion: nil)
        }
    }

}

protocol Initializable {
    init()
}

protocol UIViewControllerInitializable: Initializable, UIViewController {}

class BaseTableViewController: UITableViewController {
    let a: Int

    init(a: Int) {
        self.a = a

        super.init(style: .plain)
    }

    required init?(coder: NSCoder) {
        fatalError()
    }
}

final class SomeViewController: BaseTableViewController, UIViewControllerInitializable {
    init() {
        print("init")

        super.init(a: 10)
    }

    required init?(coder: NSCoder) {
        fatalError()
    }
}
Xcode 11 beta 2有什么变化?这是一个bug还是我应该更改代码


我将您的代码复制到了一个Xcode 11 beta 2 Swift游乐场中,我没有看到那个错误。但是,由于
UIViewController
@rmaddy的冗余约束,我确实在
协议uiviewcontrollerineinitializable:Initializable,UIViewController{}
行中遇到了一个错误。你能试着在一个“真实”项目中运行它吗?我不确定游乐场是否会执行与“真实”项目完全相同的代码。@rmaddy我在可初始化签名上犯了一个小错误,但问题仍然存在(但关于冗余约束的警告消失了)@rmaddy当我在框中键入问题的标题时,出现了许多类似的问题!我会把电话线拔下来。如果你克隆了项目,只需按run键,你就不会出错?我只是复制并粘贴了你输入问题的代码。我没有接触过你的git项目。我将你的代码复制到了Xcode 11 beta 2 Swift游乐场中,我没有看到这个错误。但是,由于
UIViewController
@rmaddy的冗余约束,我确实在
协议uiviewcontrollerineinitializable:Initializable,UIViewController{}
行中遇到了一个错误。你能试着在一个“真实”项目中运行它吗?我不确定游乐场是否会执行与“真实”项目完全相同的代码。@rmaddy我在可初始化签名上犯了一个小错误,但问题仍然存在(但关于冗余约束的警告消失了)@rmaddy当我在框中键入问题的标题时,出现了许多类似的问题!我会把电话线拔下来。如果你克隆了项目,只需按run键,你就不会出错?我只是复制并粘贴了你输入问题的代码。我没有碰过你的git项目。