我已经设置了一些看起来像这样的代码
let queue = DispatchQueue(label: "queue.1", qos: .utility, attributes: .concurrent)
queue.async {
AppUtility().run(X: self.BitCount)
}
这是一个名为的函数:
public func run(X: UILabel) {
var placeHolder = 0
while placeHolder == 0{
if globalValues.bitsPerSecond != 0 {
globalValues.Bits = globalValues.Bits + 1
//globalValues.bitsPerSecond
print("Ran")
}
UserDefaults.standard.set(globalValues.Bits, forKey: "bits")
X.text = "\(globalValues.Bits)"
sleep(1)
}
}
此代码将在用户查看屏幕时通过计数器每隔一秒更新一个标签。从我所看到的,我相信我的代码是正确的但是我不知道在哪里放它所以它总是可以在后台运行。有什么帮助吗?
答案 0 :(得分:0)
我不知道在哪里放它所以它总是可以在后台运行
在iOS中,代码不会在后台运行。当您的应用程序背景化时,已暂停。
如果想法是当应用程序返回到前台时标签应该具有正确的值,好像计数在后台进行,那么只需使用激活事件一个信号来计算我们背景的时间并相应地调整标签值。