我正在创建一个在黑白之间快速切换屏幕的应用。为此,我使用的是Timer
,
我的问题归结为无法在计时器声明中调用同一范围(changeBackgroundColor
)中的函数。
let timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true, block: changeBackgroundColor)
//Error: 'Cannot convert value of type '(ViewController) -> (Timer) -> Void' to expected argument type '(Timer) -> Void'
func changeBackgroundColor(timer: Timer) -> Void {
//change the color of the screen (not the issue here)
}
我以为我已经理解了闭包,但这里的示波器似乎存在问题。
答案 0 :(得分:1)
使用计时器“块”版本的重点是避免创建单独的函数。
您应该按如下方式编写:
let timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { (timer) in
// change the color of the screen
}