Использование не реализованного инициализатора 'init (style :)' для класса с Xcode 11 beta 2 - PullRequest
1 голос
/ 30 июня 2019

я получаю ошибку

Использование не реализованного инициализатора 'init (style :)' для класса

Тема 1: EXC_BAD_INSTRUCTION (код = EXC_I386_INVOP, субкод = 0x0)

Я не получал эту ошибку на каждом предыдущем Xcode, с которым работал. Я не должен получить эту ошибку, потому что я использую свой собственный назначенный инициализатор. Ошибка может быть воспроизведена с помощью этого репозитория git: 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...