在我当前的项目中,我必须实现多个函数来处理应用程序的多个屏幕中不同数量的UITextField
。
我想如果我可以实现一个可以占用任意数量的UITextField
的函数会更有效。
是否有可能在swift 3上实现这个功能?
答案 0 :(得分:11)
Swift Variadic Parameters
接受指定类型的零个或多个参数。可变参数的语法是,在参数的类型名称后插入三个句点字符(...)
。
func anyNumberOfTextField(_ textField: UITextField...) {
}
现在你可以传递任意数量的textField。
anyNumberField(UITextField(),UITextField(), UITextField(), UITextField())
注意:一个函数最多只能有一个可变参数。
有关详细信息,请查看此Swift Functions
您还可以采用另一种方式,即 Array Parameter
。这两种方法有一些优点和缺点。你会发现这里的区别link。
答案 1 :(得分:5)
最简单的方法是传递一组UITextFields:
func processTextFields(fields:[UITextField]) {
for field in fields {
// Process your text fields
}
}
答案 2 :(得分:0)
我想你可以通过创建一个以UITextField数组作为参数的函数来实现。
mylst = map(lambda each:each.strip("\n"), gerritinfo)
print mylst
否则,您只需创建一些参数,这些参数等于您必须执行操作的文本字段数。 希望这会有所帮助:)