gpt4 book ai didi

swift - 定时器如何在 Swift 中工作?

转载 作者:搜寻专家 更新时间:2023-10-30 22:12:25 25 4
gpt4 key购买 nike

我在 Swift 中使用 Timer,但不确定它究竟是如何工作的。我正在尝试扫描 2 秒,连接到外围设备,然后结束扫描。我有以下代码,其中 connectToPeripheralstartScanendScan 是同一类中的函数。

    startScan()
Timer(timeInterval: 2, target: self, selector: #selector(connectToPeripheral), userInfo: nil, repeats: false)
endScan()

定时器中的选择器是如何工作的?代码调用计时器后,代码是否仅执行选择器而不调用接下来的任何代码,还是仅在选择器完成运行后才调用接下来的代码?基本上,我问的是有关定时器及其选择器的事件周期是什么。

最佳答案

Timer 在指定为 timeInterval 的时间过去后调用在其选择器输入参数中指定的方法。 Timer 不会影响其余代码的生命周期(当然除了选择器中指定的方法),所有其他功能都正常执行。

查看这个最小的 Playground 示例:

class TimerTest: NSObject {

var timer:Timer?

func scheduleTimer(_ timeInterval: TimeInterval){
timer = Timer.scheduledTimer(timeInterval: timeInterval, target: self, selector: #selector(TimerTest.timerCall), userInfo: nil, repeats: false)
}

func timerCall(){
print("Timer executed")
}
}

print("Code started")
TimerTest().scheduleTimer(2)
print("Execution continues as normal")

import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true

输出:

print("Code started")

TimerTest().scheduleTimer(2)

print("Execution continues as normal")

关于swift - 定时器如何在 Swift 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46105722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com