gpt4 book ai didi

swift - 带有可从 objective-c 使用的完成 block 的方法

转载 作者:可可西里 更新时间:2023-11-01 01:09:18 26 4
gpt4 key购买 nike

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

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

我收到“方法无法标记为@objc,因为参数...”如何使用可从 objective-c 使用的完成 block 制作函数?

最佳答案

您将 completion 参数声明为 ()->()?,它转换为一个没有参数的闭包并返回一个 Void?。 Objective-C 仅支持类参数的可选,因此完成 block 与 Objective-C 不兼容。

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

关于swift - 带有可从 objective-c 使用的完成 block 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49070169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com