2017-07-12 80 views

回答

0

的iOS提供了一個API來顯示進度:https://developer.apple.com/documentation/uikit/uiprogressview

爲了讓您的應用程序,以理解和顯示進度需要兩兩件事:您正在下載的文件

  • 當前文件下載進度
    • 文件總大小如果您同時擁有這些東西你的進步是減去總文件當前進度的簡單函數的結果尺寸。

      E.g.文件是100MB,到目前爲止你已經下載了36MB,你的進度是36%

      隨着新的塊下載,你更新你的進度。

      您可以通過計算網絡速度和知道您正在下載的塊的大小來獲得幻想,但即使使用上面描述的方程式之類的簡單操作,進度也可能有意義。

    +0

    你對Uiprogressview是正確的,但我想從數據庫中讀取增量數據而不是web服務,我也可能不知道正在讀取的內容的大小。 –

    +0

    如果你不知道文件大小,那麼你可以衡量進度是什麼?在那裏;你如何定義進度? –

    +1

    那麼這就是問題和相當有效的問題。假設你用一些查詢數據庫謂詞你的結果每次都會有所不同。 –

    1

    在閱讀核心數據API的一些文章後,我能夠實現異步讀取行爲。

    @Adam Fallon,當你說不知道要提取的內容的大小時,你說得對,我們無法定義進度。但是對於獲取文件大小,我們可以簡單地調用:

    managedObjectContext.count(for: fetch)

    而對於增量抓取,我們可以使用NSAsynchronousFetchRequest API。

    示例代碼Core-Data-Asynchronous-Fetching

    博客鏈接Core-Data-Asynchronous-Fetching

    視頻鏈接Core-Data-Asynchronous-Fetching

    將探索更多的增量保存。