在函数中传递未知数量的参数

Beh*_*ahi 3 swift

在我当前的项目中,我必须实现多个函数来处理UITextField我的应用程序的多个屏幕中的不同数量.

我想如果我能实现一个可以占用任何数量的函数会更有效率UITextField.

是否有可能在swift 3上实现这个功能?

iMu*_*hid 12

Swift Variadic Parameters接受指定类型的零个或多个参数.可变参数的语法是,(...)在参数的类型名称后插入三个句点字符.

func anyNumberOfTextField(_ textField: UITextField...) {

}
Run Code Online (Sandbox Code Playgroud)

现在你可以传递任意数量的textField.

anyNumberField(UITextField(),UITextField(), UITextField(), UITextField())
Run Code Online (Sandbox Code Playgroud)

注意:函数最多可以包含一个可变参数.

有关更多信息,请查看此Swift函数

还有另一种方法可以做到这一点Array Parameter.这两种方法有一些优点和缺点.你会发现这里的差异链接.


小智 5

最简单的方法是传递一组UITextField:

func processTextFields(fields:[UITextField]) {
    for field in fields {
        // Process your text fields
    }
}
Run Code Online (Sandbox Code Playgroud)