gpt4 book ai didi

ios - 我如何将这个 Swift 3 Singleton 用作我的 IOS 项目的全局计时器?

转载 作者:行者123 更新时间:2023-11-28 08:10:50 28 4
gpt4 key购买 nike

我在 Swift 3 的另一个线程(显示在最底部)上找到了这段代码,但似乎无法让它在我的 IOS 项目中工作。

我知道它是一个 Singleton,但我必须承认,我不确定如何在我的 IOS 项目中使用它,以便计时器可以在所有 ViewController 上工作。

我可以执行以下操作吗?如果没有,我该如何使用它?

var t = TimeModel.sharedTimer

t.startTimer(0.25, testing)

var counter = 0

func testing()
{
counter += 1
print("this is a test \(counter)")
}

我做错了什么?

class TimerModel: NSObject {
static let sharedTimer: TimerModel = {
let timer = TimerModel()
return timer
}()

var internalTimer: Timer?
var jobs = [() -> Void]()

func startTimer(withInterval interval: Double, andJob job: @escaping () -> Void) {
if internalTimer == nil {
internalTimer?.invalidate()
}
jobs.append(job)
internalTimer = Timer.scheduledTimer(timeInterval: interval, target: self, selector: #selector(doJob), userInfo: nil, repeats: true)
}

func pauseTimer() {
guard internalTimer != nil else {
print("No timer active, start the timer before you stop it.")
return
}
internalTimer?.invalidate()
}

func stopTimer() {
guard internalTimer != nil else {
print("No timer active, start the timer before you stop it.")
return
}
jobs = [()->()]()
internalTimer?.invalidate()
}

func doJob() {
for job in jobs {
job()
}
}

}

最佳答案

//像这样调用方法。

let timer = TimerModel.sharedTimer

timer.startTimer(withInterval: 0.25) {
self.testing()
}

var counter = 0
func testing() {
counter += 1
print("this is a test \(counter)")
}

enter image description here

关于ios - 我如何将这个 Swift 3 Singleton 用作我的 IOS 项目的全局计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43838466/

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