0
我需要为使用闭包通过类中的数组枚举的类编写函数。当从别处调用函数时,我需要在闭包中为我提供当前数组的索引。我知道如何编写函数,但是如何在调用时使索引(和其他变量)可用?关闭中的Swift传入变量
P.S.
这应该类似于SpriteKit中的SKNode如何通过子节点枚举来枚举传递的闭包中可用的子节点。
我需要为使用闭包通过类中的数组枚举的类编写函数。当从别处调用函数时,我需要在闭包中为我提供当前数组的索引。我知道如何编写函数,但是如何在调用时使索引(和其他变量)可用?关闭中的Swift传入变量
P.S.
这应该类似于SpriteKit中的SKNode如何通过子节点枚举来枚举传递的闭包中可用的子节点。
我不知道你在努力达到什么目的。
也许这样吗?
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
}
}
输出:
0: foo
1: bar
的伟大工程!谢谢。 – 2014-12-02 15:37:14