/ / Swift Pass-in zmienne w zamknięciach - ios, tablice, xcode, swift, closures

Swift Pass-in zmienne w zamknięciach - ios, tablice, xcode, szybkie, zamknięte

Muszę napisać funkcję dla klasy, którawylicza przez tablicę w klasie przy użyciu zamknięcia. Podczas wywoływania funkcji z innego miejsca, potrzebuję indeks bieżącej tablicy dostępnej dla mnie w zamknięciu. Wiem, jak napisać funkcję, ale w jaki sposób udostępnić indeks (i inne zmienne) podczas dzwonienia?

P.S.

Powinno to być podobne do tego, w jaki sposób SKNode w SpriteKit wyliczył poprzez funkcję potomną, a węzeł podrzędny jest dostępny dla przekazanego w zamknięciu.

Odpowiedzi:

1 dla odpowiedzi № 1

Nie jestem pewien, co próbujesz osiągnąć.

Może tak?

class MyClass {
var ary:[String] = ["foo","bar","baz"]

func enumerateArray(block: (String, Int, inout Bool) -> Void) {
var stop = false
for e in enumerate(ary) {
block(e.element, e.index, &stop)
if stop {
break
}
}
}
}


let obj = MyClass()

obj.enumerateArray { str, idx, stop in
println("(idx): (str)")
if str == "bar" {
stop = true
}
}

wyjścia:

0: foo
1: bar