[英]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.