La risposta accettata è corretto, ma funzionerà solo per NSArrays. Non per il tipo di dati Swift Array
. Se ti piace, puoi ricrearlo con un'estensione.
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
}
}
}
}
chiamata piace
[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
}
})
o per la funzione con un blocco come ultimo parametro si può fare
[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
}
}
possibile duplicato di [enumerateObjectsUsingBlock a Swift] (http://stackoverflow.com/questions/24120115/enumerateobjectsusingblock-in-swift) –
Il collegamento dice in sostanza, non usare enumerateObjectsUsingBlock in swift, perché la funzionalità è meglio espressa usando 'for ... in .. enumerate' –
@David: non un duplicato. l'altro thread non copre il parametro stop. – vikingosegundo