Как сделать так, чтобы l oop присваивал разные переменные разным строкам в Swift? - PullRequest
0 голосов
/ 09 марта 2020

Я ищу автоматическое назначение переменных в swift:

for i in 1...3{

 var v[1] =  "\(response.value?.resultSet.the0.result.the[1]?.image.medium ?? "is nil")"
 var v[2] =  "\(response.value?.resultSet.the0.result.the[2]?.image.medium ?? "is nil")"
 var v[3] =  "\(response.value?.resultSet.the0.result.the[3]?.image.medium ?? "is nil")"
}

Для каждого i идея состоит в том, чтобы назначать разные переменные с разными строками, я изо всех сил пытаюсь реализовать это в Swift. ..

У кого-нибудь есть идея?

Заранее спасибо

Ответы [ 4 ]

2 голосов
/ 09 марта 2020

Вы можете использовать карту.

let v = (1...3).map { "\(response.value?.resultSet.the0.result.the[$0]?.image.medium ?? "is nil")" }
0 голосов
/ 09 марта 2020

Попробуйте это

  • Определить массив Переменная
var strVal = [String]()
  • Добавить значения из response .
let imgData = response.value?.resultSet.the0.result.the.count

for i in 0<..imgData.count{

    strVal[i] =  "\(response.value?.resultSet.the0.result.the[i]?.image.medium ?? "is nil")"

}

С приведенным выше кодом вам не нужно сохранять значения по отдельности.

0 голосов
/ 09 марта 2020

Попробуйте

var variables:[String:String] = [:]

for i in 1...3{
    variables["variable\(i)"] = "value\(i)"
}

это результат

["variable2": "value2", "variable3": "value3", "variable1": "value1"]

0 голосов
/ 09 марта 2020

Вы не можете называть переменные на лету, вам нужно пропустить l oop и выполнить

var v1 =  "\(response.value?.resultSet.the0.result.the[1]?.image.medium ?? "is nil")"
var v2 =  "\(response.value?.resultSet.the0.result.the[2]?.image.medium ?? "is nil")"
var v3 =  "\(response.value?.resultSet.the0.result.the[3]?.image.medium ?? "is nil")"

Чтобы использовать вместо этого массив, вы можете сделать что-то вроде

let array = response.value?.resultSet.the0.result.the.compactMap {$0.image.medium}

или словарь

var dictionary = [String: String]()
for (index, value) in response.value?.resultSet.the0.result.the.enumerated() {
    dictionary["v\(index)"] = value
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...