Die akzeptierte Antwort ist richtig, aber nur für NSArrays arbeiten. Nicht für den Swift-Datentyp Array
. Wenn Sie möchten, können Sie es mit einer Erweiterung neu erstellen.
extension Array{
func enumerateObjectsUsingBlock(enumerator:(obj:Any, idx:Int, inout stop:Bool)->Void){
for (i,v) in enumerate(self){
var stop:Bool = false
enumerator(obj: v, idx: i, stop: &stop)
if stop{
break
}
}
}
}
nennen es wie
[1,2,3,4,5].enumerateObjectsUsingBlock({
obj, idx, stop in
let x = (obj as Int) * (obj as Int)
println("\(x)")
if obj as Int == 3{
stop = true
}
})
oder für die Funktion mit einem Block als letzter Parameter können Sie tun
[1,2,3,4,5].enumerateObjectsUsingBlock(){
obj, idx, stop in
let x = (obj as Int) * (obj as Int)
println("\(x)")
if obj as Int == 3{
stop = true
}
}
möglich Duplikat [enumerateObjectsUsingBlock in Swift] (http://stackoverflow.com/questions/24120115/enumerateobjectsusingblock-in-swift) –
Der Link im Grunde sagt, nicht verwenden enumerateObjectsUsingBlock in swift, da die Funktionalität besser mit 'for ... in .. enumerate' ausgedrückt wird –
@David: kein Duplikat. Der andere Thread deckt den Stopp-Parameter nicht ab. – vikingosegundo