У меня есть метод init в Swift, и я пытался вызвать его из класса Objective-C. Но есть ошибка, написанная "Нет видимого @interface для 'NoteViewController', объявляет селектор initWithModel: withKeyboardType: '"
Я добавляю "target-Swift.h", и это на 100% правильно, потому что я уже поместил его в другой класс, и он хорошо работает. Я положил @objc
и сделал модификатор метода init равным public
это импорт
#import "gp27appj-Swift.h"
это метод init
@objc public init(model: NoteViewModel, with keyboardType: tagKeyboardType) {
super.init(model: model)
self.keyboardType = keyboardType
}
вот как я звонил из объектива-с
viewController = [[NoteViewController alloc] initWithModel:noteViewModel withKeyboardType:(tagKeyboardType)gameContext.selectedAnswerType];
Я ожидаю, что все работает хорошо, потому что я уже все расставил по местам. Спасибо
---------- Решено благодаря @ rmaddy
это глупая ошибка, потому что завершение не появляется раньше
вместо
viewController = [[NoteViewController alloc] initWithModel:noteViewModel withKeyboardType:(tagKeyboardType)gameContext.selectedAnswerType];
Я должен использовать
viewController = [[NoteViewController alloc] initWithModel:noteViewModel with:(tagKeyboardType)gameContext.selectedAnswerType];