Calling swift completion block in Objective C class file. Error: parameter name omitted

Calling swift completion block in Objective C class file. Error: parameter name omitted

我正在尝试从 Objective C class.

调用以下 Swift 函数

swift class 函数

@objc public func loaddevice(completionswift:@escaping (String) -> Void){
      appSyncClient?.fetch(query: GetDevicesQuery(), cachePolicy: .returnCacheDataAndFetch)  { (result, error) in
          if error != nil {
              print(error?.localizedDescription ?? "")
              return
          } else if let str = result?.data?.devices?.deviceId {
              completionswift(str)
          }
      }
}

我从 Objective C class 中这样调用它:

[self.appClient loaddeviceWithCompletionswift:^(NSString * _Nonnull) {

}];

它给我错误:省略了参数名称

谢谢

尝试做:

[self.appClient loaddeviceWithCompletionswift:^(NSString * _Nonnull deviceID) {

}];

其中 deviceID 将是完成块中传递的 NSString

你好像忘记给参数命名了。

[self.appClient loaddeviceWithCompletionswift:^(NSString * _Nonnull str) {

}];