ios - 如何在所有 UIView(Swift 语言)中定期运行任务?

标签 ios swift uiview

我一直在寻找解决方案,但有点困惑。我需要在我所有的 UIViewControllers 中定期运行一个任务。基本上,我想每 10 秒检查一次数据库的内容,看看变量是否从 0 变为 1。我阅读了 NSTimer 和 Dispatch_time,但我不确定如果我从一个 View 切换到花药。我怎样才能做到这一点?

我问题的第二部分是如何将此任务传递给后台线程?假设用户锁定了他/她的手机,我希望应用程序仍然检查数据库,直到变量从 0 变为 1。

我是应用程序编程和 iOS 架构的新手。如果有任何我可以阅读的东西可以帮助我完成这项任务,请提出建议。

提前致谢。

最佳答案

您是否考虑过运行一个Thread

人们肯定会说初学者永远不要接触线程,因为不小心可能会导致非常不可预测的错误等。 问题是有时您确实必须使用它们,并且您的需求适合线程。

线程在程序的后台运行,与代码的其余部分和线程的其余部分分开。这意味着线程不会等待任何其他事情,只有在您要求它们时才会这样做。

在此处了解有关 Swift 中的 Threads 的更多信息:https://thatthinginswift.com/background-threads/

关于ios - 如何在所有 UIView(Swift 语言)中定期运行任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38647342/

相关文章:

iOS:防止 Restkit 对 URL 编码逗号

ios - SpriteKit 淡出

ios - 每次在 textField 中输入新值时如何更新 tableView 单元格的标签?

ios - 如何隐藏 CALayer 的边框而不导致 iOS 中的渲染问题

ios - iOS 7+ 上从 BGRA 字节获取 CVPixelBufferRef 的最快方法

javascript - 在 react-native (expo) 上禁用原生抖动效果

ios - 在堆栈 View 内的 Uilabels 之间创建垂直线

ios - 如何向被屏蔽自定义内容的CALayer添加阴影

ios - 如何在不阻止用户与 UIWebView 交互的情况下在 UIWebView 上显示覆盖

ios - 比较并获取存储在两个 NSDictionary 中的对象