Swift: как назначить строковый массив для свойства text массива UITextFields? - PullRequest
0 голосов
/ 29 декабря 2018

Если бы у меня было 2 строковых массива, было бы довольно просто присвоить одно другому в одной строке кода (без использования цикла for):

var sArray1 = ["A","B","C"]
var sArray2 = sArray1

ОднакоЯ хотел бы сделать что-то подобное с массивом UITextFields, но не могу понять это.Я чувствую, что это должно выглядеть примерно так:

var sArray1 = ["A","B","C"]
var sArray2 = [textField1, textField2, textField3]
sArray2.text = sArray1

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Альтернативное решение с 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>>]
0 голосов
/ 29 декабря 2018

[UITextField] не имеет свойства text, поэтому вы не можете использовать sArray2.text.

Вы можете zip, а затем forEach:

zip(sArray2, sArray1).forEach { $0.0.text = $0.1 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...