2016-04-14 34 views
0

我的应用程序中有三个屏幕,位于UITabBarViewController中。自动检查本地文件是否是Swift中的最新版本

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

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

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

因此,检查文件是否过期与本地版本号<远程版本号一样容易。

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

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

谢谢!

+0

不太清楚你的问题是什么。显示你现在的代码 - 为什么它会阻塞主线程? – Wain

回答

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 
     } 

    } 
0

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

相关问题