2014-12-02 37 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