gpt4 book ai didi

ios - 在 swift 中使用带有参数的预定义函数作为完成 block

转载 作者:行者123 更新时间:2023-11-29 01:53:52 28 4
gpt4 key购买 nike

编辑:我认为问题出在 Swift 语法上,但问题是我不知道 UIViewController.presentViewController 为不带输入参数的完成处理程序指定了一个签名。

我必须向 presentViewController 提供完成处理程序。我想提供的完成处理程序接受一个输入参数。在 swift 中处理这个问题的语法是什么?

如果处理程序没有接受输入参数,它将如下所示:

self.presentViewController(activityVC, animated: true, completion: myHandler)

但是如果 myHandler 是这样声明的,上面的行会是什么样子:

func myHandler(myParameter: AnyObject){
...
}

最佳答案

我应该看看 declaration of presentViewController在问这个问题之前,但我对关闭没有经验,并且认为任何关闭都可以通过。事实证明,问题在于 presentViewController 采用了非常具体的形式闭包

(() -> Void)?

完整的签名在这里:

func presentViewController(_ viewControllerToPresent: UIViewController,
animated flag: Bool,
completion completion: (() -> Void)?)

所以答案是 presentViewController 不能采用本身采用另一个参数的完成处理程序。

关于ios - 在 swift 中使用带有参数的预定义函数作为完成 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31101259/

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