Ответ 1
Вы можете прокомментировать предоставленный метод init.
// init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
// super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
// // Custom initialization
// }
Это позволит вашему расширению работать правильно. Проблема, похоже, вызвана различием поведения инициализатора между Swift и Objective-C. Удаление вышеуказанного инициализатора наследует все необходимые инициализаторы из суперкласса.
Найденное решение на форумах разработчиков Apple для вашей справки.
Примечание. Возможно, вам придется выполнить Clean and Build
ваш проект после этого, прежде чем изменения будут иметь эффект
Расширение фактически сбой, с ошибкой, например:
fatal error: use of unimplemented initializer 'init(coder:)' for class 'com_blabla_blabla_MyTodayExtension.TodayViewController'
Это означает, что другой вариант будет реализован:
init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
// Custom initialization here
}
если вы хотите сохранить возможность выполнять пользовательскую инициализацию.