Wie man den aktuellen Wert einer Variablen für einen Block erfasst

Gibt es eine Möglichkeit, den aktuellen Wert einer Variablen für die spätere Verwendung in einem Block zu speichern?

Zum Beispiel für diesen Spielplatzcode:

import UIKit
import XCPlayground

XCPlaygroundPage.currentPage.needsIndefiniteExecution = true

class testClass {
    var i = 0
    func test() {
        let dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(Double(NSEC_PER_SEC)) * 5)
        dispatch_after(dispatchTime, dispatch_get_main_queue(), {
            self.test(self.i)
        })
        i = 3
    }

    func test(i: Int)
    {
        print("i: \(i)")
    }
}

let a = testClass()
a.test()

Gibt es eine Möglichkeit, den aktuellen Wert von @ zu speicheri zumdispatch_after auf eine Weise, dass ich die Ausgabe bekommeni: 0 Anstatt voni: 3?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage