Ios Swift:如何将字符串数组指定给UITextFields数组的text属性?
如果我有两个字符串数组,那么在一行代码中将一个数组分配给另一个数组就相当简单了(w/o必须使用for循环): 然而,我想用UITextFields数组做一些类似的事情,但无法理解。我觉得应该是这样的:Ios Swift:如何将字符串数组指定给UITextFields数组的text属性?,ios,arrays,swift,uitextfield,Ios,Arrays,Swift,Uitextfield,如果我有两个字符串数组,那么在一行代码中将一个数组分配给另一个数组就相当简单了(w/o必须使用for循环): 然而,我想用UITextFields数组做一些类似的事情,但无法理解。我觉得应该是这样的: var sArray1 = ["A","B","C"] var sArray2 = [textField1, textField2, textField3] sArray2.text = sArray1 [UITextField]没有text属性,因此不能使用sArray2.text 您可以然后
var sArray1 = ["A","B","C"]
var sArray2 = [textField1, textField2, textField3]
sArray2.text = sArray1
[UITextField]
没有text
属性,因此不能使用sArray2.text
您可以然后forEach
:
zip(sArray2, sArray1).forEach { $0.0.text = $0.1 }
使用
枚举()的替代解决方案
输出:
[<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>>]
[,]
您认为[UITextField]没有文本属性是什么意思?我一直在写像nameOfTextField.text=“something”这样的东西。或者您是专门指不具有该属性的UITextFields数组吗?似乎应该有一种方法。将字符串映射到字段数组中的每个字段…@Kayanarray
没有text
属性,即使其元素有属性。您可以将文本字段映射到它们的text
属性,但无法设置它们的文本。因为要更改文本字段的状态,所以应该使用forEach
。
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>>]