Como capturar o valor atual de uma variável para um bloco

Existe uma maneira de salvar o valor atual de uma variável para uso posterior em um bloco?

Por exemplo, para este código do Playground:

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()

Existe uma maneira de salvar o valor atual dei paradispatch_after de uma forma que eu recebo a saídai: 0 ao invés dei: 3?

questionAnswers(2)

yourAnswerToTheQuestion