可以从Objective-C使用的带有完成块的方法

426

我需要从Objective-C调用swift函数。这需要有一个回调(将从obj-c执行)

@objc public func getTokens(forAuthentificationCode auth_code : String, completion: ()->()? )

我得到“方法不能被标记为@objc,因为参数...”如何使用可以从Objective-C使用的完成块来制作函数?

克里斯蒂克

您将completion参数声明()->()?,这将转换为不带参数的闭包,并返回Void?Objective-C仅对类参数支持可选参数,因此完成模块与Objective-C不兼容。

但是我认为您打算将整个闭包声明为可选的,以便允许调用者传递nil,在这种情况下,您需要将闭包定义包装到另一组括号中:completion: (() -> Void)?我将返回类型从更改为,()Void提高可读性,这Void只是的别名()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Objective-C中使用带有可为空的String值的Swift完成块

是否可以将带有完成块的View Controller推入?

是否可以将完成块传递给Objective-C中的委托参数?

如何编写一个Objective-C完成块

Objective-C可以打开NSString吗?

如何在Objective-C iOS中等待完成块完成

我可以向Objective-C枚举添加方法吗?

是否可以在 Objective-c 中使用 YouTubePlayer-Swift?

如何创建与Objective-C完成块等效的C ++作为参数

iOS / Objective-c:从完成块或闭包异步返回值到调用函数

如何在objective-c中的完成块上传递参数

是否可以在Objective-C ++中删除dispatch_once?

是否可以在Objective c上导入Java模型?

是否可以从Objective-C访问config.xml?

有什么方法可以从Objective-C的块中返回值吗?

Pyomo:使用python脚本时,有什么快速方法可以在解决ILP后显示Objective值?

是否可以在没有Swift或Objective-C的情况下使用Go创建iOS应用?

是否可以在 firestore 查询上有一个完成块?

声明带有多个参数的Objective-C方法

在Objective C中,有没有更干净的方法可以针对动态创建的NSSet测试成员资格?

使用Swift3中的完成处理程序调用Objective C方法(完成是IUO吗?)

有没有一种方法可以在Objective-C中使用Swift结构而不使它们成为类?

Objective-C:是否有任何技巧可以避免强制转换NSArray对象?

我可以/应该有多个Objective-C桥接头吗?

我们可以使用Objective-C类别来扩展C ++类吗?

可以在Objective-C程序中使用C ++ 11功能和库吗?

是否可以将选择器或方法签名作为参数传递给Objective-C?

Objective-C方法签名:声明和实现之间的参数类型可以不同吗?

我可以在Objective C类别中声明一个非公共方法吗?