2016-04-14 32 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庫。

相關問題