Вызвать закрытие Swift в Objective-C - PullRequest
0 голосов
/ 09 июля 2019

Я хочу вызвать Swift-замыкание в Objective-C.

Существует ошибка, подобная этой, хотя я объявил функцию:

Нет видимого @interface для «User»Объявляет селектор« isReady »

Swift:

@objcMember
class User:NSObject {
    func isReady(isTrue: Bool) -> Bool {
        return true
    }
}

Objective-C:

User *user = [[User alloc] init];
[_user isReady]. <-  error

1 Ответ

1 голос
/ 09 июля 2019

Добавить к функции @ objc модификатор:

@objcMember
class User:NSObject {
 @objc public func isReady(isTrue: Bool) -> Bool {
  return true
   }
 }

И добавьте открытый модификатор в функцию, чтобы разрешить доступ из других модулей (быстрый код собирается как модуль, а код ObjC должен экспортировать его и получать доступ через открытые интерфейсы).

...