Немного смутитесь относительно назначенных и удобных инициализаторов для UIViewController в Swift 2.0/Xcode 7beta3. Наши UIViewControllers все определены в коде, не существует НибсSwift 2.0 Подкласс подкласса UIViewController и вызванные инициализаторы удобства
класса В настоящее время не наследует от UIViewController, как это
class A : UIViewController {
convenience init() {
...
self.init(nibName:nil, bundle:nil)
...
}
}
Тогда класс B наследует от класса A и должны переопределить удобство инициализации и вызвать его, как супер. INIT()
class B : A {
convenience init() {
super.init()
...
}
}
компилятор не позволяет это с должно вызвать назначенный инициализатору суперкласс «...» ошибки super.init()
Так в чем проблема? Сообщение об ошибке ясно. 'super.init' не является назначенным инициализатором - вы сами объявили его инициализатором удобства. Почему вы удивлены? – matt
@matt - Мне любопытно, как лучше всего использовать этот шаблон. Я определяю метод инициализации удобства для выполнения инъекции зависимостей в 'init()' для подкласса UIViewController. Когда я подклассифицирую подкласс, я хочу иметь возможность выполнить одну и ту же инъекцию зависимостей на 'init()', просто измените некоторые функции. Это был простой образец для реализации в ObjC. Я спрашиваю, какой будет лучшая модель Swift. Все ответы, включая ваши, бросают ошибки компилятора в Swift 2.0 и, похоже, не применяются к фреймворкам UIKit (или, по крайней мере, не к UIViewController) – dmorrow
Mine не бросает никакой ошибки компилятора в Swift 2.0/iOS 9. I попробовал! – matt