在Swift

时间:2016-04-14 09:47:29

标签: ios swift

我的应用程序中有三个屏幕,位于UITabBarViewController。

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

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

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

因此,检查文件是否过时就像本地版本号<远程版本号。

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

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

谢谢!

2 个答案:

答案 0 :(得分:0)

你必须使用线程。这将帮助您在后台运行任务,而不会干扰您当前的视图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
        }

    }

答案 1 :(得分:0)

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