/ / Swift Pass-In-Variablen in Schließungen - IOS, Arrays, Xcode, Swift, Schließungen

Schnelle Pass-In-Variablen in Schließungen - IOS, Arrays, Xcode, Swift, Schließungen

Ich muss eine Funktion für eine Klasse schreibenZählt über ein Array in der Klasse mit einem Abschluss auf. Beim Aufruf der Funktion von anderswo benötige ich den Index des aktuellen Arrays, das mir in der Schließung zur Verfügung steht. Ich kann die Funktion schreiben, aber wie kann ich den Index (und andere Variablen) beim Aufruf verfügbar machen?

P.S.

Dies sollte der Art und Weise ähneln, wie ein SKNode in SpriteKit über die untergeordnete Funktion aufgezählt wird, wobei der untergeordnete Knoten für den übergebenen Abschluss verfügbar ist.

Antworten:

1 für die Antwort № 1

Ich bin nicht sicher, was Sie erreichen wollen.

Vielleicht so?

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
}
}

Ausgänge:

0: foo
1: bar