Я пытаюсь добавить простой инициализатор в UIViewController
в Swift
. До сих пор это было очень неприятно ...Сумасшедшее поведение с установками UIViewController в Swift
Сначала я пытался добавить его в качестве удобства инициализации:
class ImageViewController: UIViewController {
var model: UIImage
convenience init(model: UIImage){
self.init(nibName: nil, bundle: nil)
self.model = model
}
....
Если я сделаю это, компилятор заставляет меня реализовать необходимые init(coder aDecoder: NSCoder)
. Я проверил определение класса UIViewController
, и такого требования нет, но в любом случае.
Чтобы ухудшить ситуацию, компилятор жалуется, что вызов self.init(nibName: nil, bundle: nil)
имеет ошибочный дополнительный аргумент в bundle:
. Опять же, я проверил определение класса, и для сигнатуры инициализатора требуются оба параметра.
Поэтому я решил сделать это назначенным инициализацией. Это не то, что я хочу, поскольку я не хочу потерять все инициализаторы суперкласса.
Теперь, похоже, он доволен вызовом self.init(nibName: nil, bundle: nil)
, но он по-прежнему настаивает на том, чтобы я реализовал init(coder aDecoder: NSCoder)
.
Любые идеи о том, что происходит? Я не могу сделать головы или хвосты этого ...