Трудно представить, каким может быть ваше намерение (а вы этого не объяснили), поэтому я приведу две гипотезы с двумя разными ответами.(Обратите внимание, что при этом я собираюсь исключить ваш self.itemData
и заменить его локальной переменной.
Возможно, вы пытаетесь выполнить цикл по трем массивам одновременно. Для этого используйте zip
и просто один for
цикл.
Это было бы проще, если бы zip3
существовал изначально, вы могли бы написать его, но естьна самом деле нет необходимости:
let zippedArray = zip(setArray, zip(repsArray, weightArray))
for tuple in zippedArray {
let set = tuple.0
let reps = tuple.1.0
let weight = tuple.1.1
var itemData = "Set "
itemData += set
itemData += " "
itemData += reps
itemData += " Reps "
itemData += "Weight "
itemData += weight
itemData += "kg"
structSetArray.append(itemData)
}
В реальной жизни, однако, было бы лучше иметь только один массив, элементами которого являются struct с тремя свойствами (set
, reps
и weight
).
С другой стороны, возможно, вы пытаетесь просмотреть все возможные комбинации из трех ваших массивов. В этом случае переместите всю «печать» значений в самый внутренний цикл, например:
for set in self.setArray{
for reps in self.repsArray{
for weight in self.weightArray{
var itemData = "Set "
itemData += set
itemData += " "
itemData += reps
itemData += " Reps "
itemData += "Weight "
itemData += weight
itemData += "kg"
structSetArray.append(itemData)
}
}
}