【问题标题】:Automatically check if local files are latest version in Swift自动检查本地文件是否是 Swift 中的最新版本
【发布时间】:2016-04-14 19:06:13
【问题描述】:

我的应用中有三个屏幕,在 UITabBarViewController 中。

在一个屏幕上,我有一个 UITableView 列出了应用程序文件夹中的那些文件。

我正在使用 CoreData 为每个文件存储一个关联对象。

这些对象具有版本号属性和检查远程存储库的方法。

因此,检查文件是否过期就像本地版本号

我的问题是,管理这些背景调查的最佳方式是什么?我已经能够检查视图何时加载,但这会阻塞 UI,我希望此检查以设定的时间间隔在后台运行。

我有限的经验告诉我,这是 GCD 的情况,并且需要设置某种间隔?如何在应用程序启动时运行此计时器?如何让它在后台运行和更新?

谢谢!

【问题讨论】:

  • 不太清楚您的问题是什么。显示您当前拥有的代码 - 为什么它会阻塞主线程?

标签: ios swift


【解决方案1】:

你必须使用线程。这将帮助您在后台运行任务,而不会干扰您当前的视图 UI 和功能活动。

    override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(true)

        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { () -> Void in
             // Your task code
        }

    }

【讨论】:

    【解决方案2】:

    无论如何,访问远程存储库都需要时间。所以我认为你应该对存储库使用异步请求并为用户显示微调器(活动指示器视图),直到检查通过。好的做法是指定远程存储库必须检查多少文件。 无论如何,表格视图仅在屏幕上显示部分信息。例如,您应该请求前十个文件版本。然后还有十个文件等等。 我不知道你的逻辑,但检查文件版本和更新表中的文件信息应该不会花很长时间。 如果您是 iOS 的绝对新手,请阅读 NSURLSession 类或 AFNetworking 库。

    【讨论】:

      猜你喜欢
      • 2018-05-29
      • 2011-12-14
      • 1970-01-01
      • 1970-01-01
      • 2011-12-17
      • 2021-12-29
      • 2019-03-17
      • 2013-04-02
      • 2018-03-02
      相关资源
      最近更新 更多