Нет видимого @interface для 'SwiftController' объявляет селектор (из класса target-c) - PullRequest
1 голос
/ 09 июля 2019

У меня есть метод 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];
...