【问题标题】:Accessing Objective-C block from Swift从 Swift 访问 Objective-C 块
【发布时间】:2020-02-06 23:12:20
【问题描述】:

我在 FileManagerHelper 中有这个 Objective-C 代码:

+(void)getMyVideoObject:(NSString *)videoId completion:(void (^)(MyVideoObject *myVideoObject, NSError *error)) completionBlock
{

}

用于从 Objective-C 调用:

 [FileManagerHelper getMyVideoObject:videoId completion:^(MyVideoObject *myVideoObject, NSError *error) {

}];

但是如何从 Swift 调用这个 getMyVideoObject 呢?

FileManagerHelper.getMyVideoObject( .....?

【问题讨论】:

  • 是的,当你将头文件导入桥头文件时,Swift 会生成 Swift 版本的函数签名,你可以这样调用它。

标签: ios objective-c swift objective-c-blocks swift-block


【解决方案1】:

1) 添加到您的桥接头中(将 .swift 文件添加到 Objective-C 项目时生成的-Bridging-Header.h 文件)

#import "FileManagerHelper.h"

2) 在 swift 代码中使用以下调用

FileManagerHelper.getMyVideoObject("id") { (video, error) in

}

【讨论】:

  • 不知道 Swift 视频和错误不需要声明。谢谢。
猜你喜欢
  • 2016-03-04
  • 2016-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多