2015-03-16 2 views
0

Я не могу понять, возможно ли это в Swift, но с использованием цикла for для индекса. Я пытаюсь сопоставить индекс моего массива с свойством, расположенным внутри структура в MyArrayДоступ к индексу № массива структур в Swift

данных:

class MyClass { 

struct myStruct { 
    var name: String? = "" 
    var age: Double = 0 
} 

let myArray: [myStruct] = [ 
    myStruct(name: "Gary", age: 35), 
    myStruct(name: "Carol", age: 60), 
    myStruct(name: "Lou", age: 55) 
    ] 
} 

контроллер:

var instanceofMyClass = MyClass() 

for (index, age) in enumerate(instanceofMyClass.myArray) { 
    println("my index is \(index) and age is \(age)") 

Когда я заменить свой массив структур с помощью простого массива строк, я возвращать значение, но не может возвращать значение WHe n это массив структур

ответ

2

Несмотря на то, что ваши переменные цикла называются (index, age), вы по-прежнему выполняете итерацию через myArray и содержит экземпляры структуры, которую вы определили. В результате age фактически содержит экземпляры этой структуры вместо двухместных.

Вам нужно что-то вроде этого, чтобы получить age значения в цикле:

for (index, myStruct) in enumerate(instanceofMyClass.myArray) { 
    println("my index is \(index) and age is \(myStruct.age)") 
} 
Смежные вопросы