簡體   English   中英

將參數傳遞給選擇器指向的函數

[英]pass parameter to selector pointed function

我正在使用Swift 2.1進行編程。

我在課堂上有一個職能:

private func doTask(button: UIButton) {...}

我想在2秒后調用此函數,我知道我可以使用:

NSTimer.scheduledTimerWithTimeInterval(2, target: self, selector: "doTask", userInfo: nil, repeats: false)

但是,在selector部分中,如何將參數button: UIButton傳遞給doTask

計時器只能調用以計時器為參數的方法。 選擇器只是方法的名稱; 他們無法攜帶數據。 您必須創建一個新方法,該方法需要一個計時器並調用doTask 如果要配置內容,可以在userInfo參數中傳遞數據,但仍然需要其他方法。

無論如何,這種計時器可能不是您想要的。 只需使用dispatch_after

let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(2 * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue()) {
    doTask(button)
}

您可以看到Matt的delay() ,使它更易於使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM