Swift: 如何将字符串数组分配给 UITextFields 数组的文本 属性?
Swift: how to assign a string array to the text property of an array of UITextFields?
如果我有 2 个字符串数组,在一行代码中将一个数组分配给另一个数组会相当简单(w/o 必须使用 for 循环):
var sArray1 = ["A","B","C"]
var sArray2 = sArray1
但是,我想对一组 UITextFields 执行类似的操作,但无法弄清楚。我觉得它应该看起来像这样:
var sArray1 = ["A","B","C"]
var sArray2 = [textField1, textField2, textField3]
sArray2.text = sArray1
[UITextField]
没有 text
属性,所以你不能使用 sArray2.text
.
您可以 zip
然后 forEach
:
zip(sArray2, sArray1).forEach { [=10=].0.text = [=10=].1 }
enumerated()
、
的替代解决方案
let sArray1 = ["A","B","C"]
let sArray2 = [textField1, textField2, textField3]
for (index, element) in sArray2.enumerated() {
element.text = sArray1[index]
}
print(sArray2)
输出:
[<UITextField: 0x7fd885051200; frame = (0 0; 0 0); text = 'A'; opaque = NO; layer = <CALayer: 0x6000024393e0>>, <UITextField: 0x7fd885037a00; frame = (0 0; 0 0); text = 'B'; opaque = NO; layer = <CALayer: 0x6000024394e0>>, <UITextField: 0x7fd88508f400; frame = (0 0; 0 0); text = 'C'; opaque = NO; layer = <CALayer: 0x6000024395e0>>]
如果我有 2 个字符串数组,在一行代码中将一个数组分配给另一个数组会相当简单(w/o 必须使用 for 循环):
var sArray1 = ["A","B","C"]
var sArray2 = sArray1
但是,我想对一组 UITextFields 执行类似的操作,但无法弄清楚。我觉得它应该看起来像这样:
var sArray1 = ["A","B","C"]
var sArray2 = [textField1, textField2, textField3]
sArray2.text = sArray1
[UITextField]
没有 text
属性,所以你不能使用 sArray2.text
.
您可以 zip
然后 forEach
:
zip(sArray2, sArray1).forEach { [=10=].0.text = [=10=].1 }
enumerated()
、
let sArray1 = ["A","B","C"]
let sArray2 = [textField1, textField2, textField3]
for (index, element) in sArray2.enumerated() {
element.text = sArray1[index]
}
print(sArray2)
输出:
[<UITextField: 0x7fd885051200; frame = (0 0; 0 0); text = 'A'; opaque = NO; layer = <CALayer: 0x6000024393e0>>, <UITextField: 0x7fd885037a00; frame = (0 0; 0 0); text = 'B'; opaque = NO; layer = <CALayer: 0x6000024394e0>>, <UITextField: 0x7fd88508f400; frame = (0 0; 0 0); text = 'C'; opaque = NO; layer = <CALayer: 0x6000024395e0>>]