对于Xcode 11 beta 2

时间:2019-06-30 20:57:37

标签: swift

我得到了错误

  

对类使用未实现的初始化程序'init(style:)'

     

线程1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)

在以前使用的每个Xcode上,我都没有收到此错误。我不应该收到此错误,因为我正在使用自己指定的初始化程序。通过运行以下git repo:https://github.com/Jasperav/EasyCrash,可以重现该错误。相关代码为:

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有哪些变化?这是错误还是应该更改代码?

enter image description here

0 个答案:

没有答案