swift – 你应该如何处理UIAlertAction的闭包参数

swift – 你应该如何处理UIAlertAction的闭包参数,第1张

概述我一直在尝试创建一个也有处理程序的UIAlertAtion.我从 this问题中读到答案并知道如何做到这一点. 我的问题只是关于它的关闭部分. 1)我知道我可以写:{alert in println(“Foo”)}或{_ in println(“Foo”)}但我不能写{println(“Foo”)}.在here评论中,它被解释是因为您需要处理参数 *** 作. 这是否意味着因为处理程序是类型(UIAler 我一直在尝试创建一个也有处理程序的UIAlertAtion.我从 this问题中读到答案并知道如何做到这一点.

我的问题只是关于它的关闭部分.

1)我知道我可以写:{alert in println(“Foo”)}或{_ in println(“Foo”)}但我不能写{println(“Foo”)}.在here评论中,它被解释是因为您需要处理参数 *** 作.

这是否意味着因为处理程序是类型(UIAlertAction) – >无效)?我必须总是捕获传递的alertAction吗?

2)
我也阅读了this,答案基本上是说你可以传递一个函数作为你的参数,但函数应该采用UIAlertAction类型的东西 – > VoID,我写道:

private func anything(action : UIAlertAction) {    print("hello")}

然后写下我的alertaction:

let anotherAction = UIAlertAction(Title: "hi",style: UIAlertActionStyle.Default,handler: anything(action)) // error: Use of unresolved IDentifIEr 'action'

困惑为什么我得到那个错误

3)
在评论中它还说:但除此之外,你不必在swift中编写UIAlertActionStyle.Default. .Default也有效

我尝试写不使用该样式,因此它将默认为.Default

let sendLogAction = UIAlertAction(Title: "Log") { action in print("goodbye")}

但后来我收到以下错误:

‘(Title: String,(_) -> ())’ (aka ‘(Title: String,_ -> ())’) is not
convertible to ‘(Title: String?,style: UIAlertActionStyle,handler:
((UIAlertAction) -> VoID)?)’ (aka ‘(Title: Optional,style:
UIAlertActionStyle,handler: Optional ()>)’),tuples
have a different number of elements

4)
还看了this的答案.我不明白为什么我们需要传递警报它没有意义.这不像我们不知道警报的类型是什么……我们还没有定义它的类型吗?!!任何人都可以解释一下通过行动本身会有用的地方,我的意思是我们可以用它做什么?

我知道这是4个问题,但我认为这只是一个基本问题.我有广泛的read,在我正在工作和在游乐场玩的项目中使用了闭包/完成处理程序,但我仍感到困惑.

>是的,你必须始终处理这个论点.它是签名的一部分,不容忽视.它也是特殊的Swift语法,能够删除handler参数,因为它是最后一个参数,它是一个闭包参数. >将任何内容(动作)更改为任何内容,就像您链接到的示例一样. >你误解了.他们并不是说你可以删除样式参数.他们说你可以从UIAlertActionStyle.Default中删除UIAlertActionStyle,这意味着你只需要传递.Default作为style参数的参数. >您需要一个示例,说明处理程序的action参数的用途.真的没有太多的用途.唯一的属性是标题,样式,以及它是否启用.后者是没有意义的,因为如果处理程序被调用,你知道它已启用.唯一可能的用途是,如果标题或样式需要在处理程序中使用,并且它们在创建时未被硬编码到警报 *** 作中.通过访问处理程序中的标题或样式属性,您可以轻松访问创建 *** 作时使用的实际值. 总结

以上是内存溢出为你收集整理的swift – 你应该如何处理UIAlertAction的闭包参数全部内容,希望文章能够帮你解决swift – 你应该如何处理UIAlertAction的闭包参数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1038191.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存