вызов функции в файле swift из файла target-c с синтаксисом обработчика завершения (замыкания) - PullRequest
0 голосов
/ 30 ноября 2018

У меня проблемы с вызовом функции в файле swift из файла Objective-C, где в функции swift есть замыкание.

Это функция Swift

//In Utilities class

static func getString(query: NSString, completion: @escaping (_ response: NSString) -> Void) {

        completion("hello")
    }

Вот как я пытаюсь вызвать его в классеjective-c:

 [Utilities getString:@"hi there" completion:^(NSString* response) {
     NSLog(response);
    }];

Я получаю сообщение об ошибке «Нет известного метода класса для селектора» getString: завершение: '

Чтоне так с выше?

Примечание: я могу вызывать более простой метод без блока закрытия / завершения.

in swift class
static func myTest () {
      print("function called")
    }

вызывается из класса target-c с помощью:

[Utilities myTest];

SOпохоже, проблема связана с синтаксисом закрытия.

1 Ответ

0 голосов
/ 30 ноября 2018

Окружите класс с помощью

@objcMembers class Utilities:NSObject {

или функции

@objc class func getString(query: NSString, completion: @escaping (_ response: NSString) -> Void) {

[Utilities getStringWithQuery:@"hi there" completion:^(NSString* response) {
 NSLog(response);
}];
...