在方法的参数中传递跟踪变量为void。

问题描述 投票:0回答:1

所以,当我作为一个初学者在学习Swift的时候,我看到了这个惯例的

{ something in

为某些方法参数。据我了解,这是因为某些参数给了你一个变量constant,可以在下面的代码块中用来跟踪对象状态的变化。我曾见过这样的情况,当在一个方法中添加一个完成度的 UIViewPropertyAnimator-对象,在那里你可以跟踪完成的进度,像这样。

animation.addCompletion({ progress in
    if progress == .end {
        // do something
    }
})

现在我的问题是这个是什么意思(如下图)?我很清楚地明白在块内做了什么,但我并不真正理解这个神秘的""是什么意思。action -> Void in"是用来做什么的。是不是因为一个动作是可以跟踪的,但实际上在块里面并没有被跟踪,所以你把它声明成"action -> Void"?

enter image description here

ios swift
1个回答
0
投票

这个 action -> void 在这种情况下,告诉你期望的参数是一个闭包,基本上是一个作为参数给出的函数。更多关于它的内容请参考官方文档。闭包表达式.

您的代码为 UIAlertAction 会是这样的。

UIAlertAction(title: "Title", style: .default) { action in
   // The Code that should run once the action is triggered.
}

传入闭合函数的参数动作是... UIAlertAction 本身。

© www.soinside.com 2019 - 2024. All rights reserved.