2014-12-02 45 views
0

我需要为使用闭包通过类中的数组枚举的类编写函数。当从别处调用函数时,我需要在闭包中为我提供当前数组的索引。我知道如何编写函数,但是如何在调用时使索引(和其他变量)可用?关闭中的Swift传入变量

P.S.

这应该类似于SpriteKit中的SKNode如何通过子节点枚举来枚举传递的闭包中可用的子节点。

回答

1

我不知道你在努力达到什么目的。

也许这样吗?

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 
+0

的伟大工程!谢谢。 – 2014-12-02 15:37:14