使用核心數據時,在線程間不斷共享數據的首選方法是什麼?我正在下載一個大文件,並想在UIProgressBar
中顯示下載進度。實際下載發生在由NSOperation
創建的後臺線程中。核心數據,文件下載和線程安全
將下載信息(本地路徑,總字節數,接收到的字節數)建模爲核心數據管理對象,實際文件存儲在Documents /目錄中。我想到的一個解決方案是在後臺線程中創建一個單獨的託管對象上下文,並將其傳遞給objectID
,並使用objectWithID:
方法將其拉出。每當後臺線程進行保存時,主線程都會收到通知,主內容將合併這些更改,並隨後更新表視圖。
此方法有效,但保存不能太頻繁或UI凍結。因此,在接收到每個X KB的數據後,UI將被更新,其中X必須至少爲500 KB才能使UI有所響應。在收到下載進度數據到主線程時是否有更好的方法?
編輯:會使用KVO有任何幫助嗎?如果是的話,你知道關於這個主題的任何好的教程嗎?
首先要做的是,能夠開心點! ASIHTTPRequest看起來非常好,我將它整合到我的代碼中。它提供了比我的小小的下載框架更多的功能,它是開源的:) – Anurag 2009-10-11 22:04:26