所以,当我作为一个初学者在学习Swift的时候,我看到了这个惯例的
{ something in
为某些方法参数。据我了解,这是因为某些参数给了你一个变量constant,可以在下面的代码块中用来跟踪对象状态的变化。我曾见过这样的情况,当在一个方法中添加一个完成度的 UIViewPropertyAnimator
-对象,在那里你可以跟踪完成的进度,像这样。
animation.addCompletion({ progress in
if progress == .end {
// do something
}
})
现在我的问题是这个是什么意思(如下图)?我很清楚地明白在块内做了什么,但我并不真正理解这个神秘的""是什么意思。action -> Void in
"是用来做什么的。是不是因为一个动作是可以跟踪的,但实际上在块里面并没有被跟踪,所以你把它声明成"action -> Void
"?
这个 action -> void
在这种情况下,告诉你期望的参数是一个闭包,基本上是一个作为参数给出的函数。更多关于它的内容请参考官方文档。闭包表达式.
您的代码为 UIAlertAction
会是这样的。
UIAlertAction(title: "Title", style: .default) { action in
// The Code that should run once the action is triggered.
}
传入闭合函数的参数动作是... UIAlertAction
本身。