在Objective-C中调用Swift闭包

时间:2019-07-09 11:22:36

标签: objective-c swift

我想在Objective-C中调用Swift闭包。

即使我声明了该函数,还是会有这样的错误:

  

“用户”没有可见的@interface声明选择器“ isReady”

迅速:

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

Objective-C:

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

1 个答案:

答案 0 :(得分:0)

添加到函数@objc修饰符:

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

并在函数中添加public修饰符,以允许从其他模块进行访问(作为模块构建的swift代码,ObjC代码应将其导出并通过开放接口进行访问)。