2016-01-30 100 views
1

我開發一個iOS應用下載哪些是有效的4小時的XML數據。我想檢查有效性,如果需要,在我的應用程序啓動時更新這些數據。更改核心數據時,應用程序啓動

我使用這個XML解析器來加載數據http://www.theappguruz.com/blog/xml-parsing-using-nsxmlparse-swift

現在我打電話AppDelegate.swiftbeginParse()和解析數據function didiFinishLaunchingWithOptions。這是執行此背景任務的正確位置嗎?

在教程,我貼的傢伙做它在視圖控制器,但我想利用這個解析器來更新coredata,我需要它在後臺應用程序啓動後運行。

在此先感謝

回答

1

專業的方式做到這一點是有一個函數(或者甚至是滿級),來管理此下載/解析數據和異步保存在您的核心數據,在此之後,你可以通知視圖你有新的內容要加載(或者如果有錯誤或其他)。

在哪裏調用的函數,這取決於...

如果您只顯示給用戶的最新信息(如鎖定屏幕白衣「正在加載...」或類似的東西) ,將調用放在第一個視圖控制器中,僅僅因爲調用完成處理程序來解鎖和加載數據會更簡單。

但是,如果你可以加載「舊」的信息,只是爲了更快,刷新當新內容是可用的,我認爲你可以在打電話的appDelegate沒有問題。

+0

謝謝您的回答。現在我已經創建了全新的類來解析和保存xml。不過,我必須檢查文檔以確定contentsOfUrl(NSURL)是否是異步的。我可以使用舊數據,所以我會爲以防萬一調用它的appDelegate – horin

+0

,你可以檢查這個環節,它顯示瞭如何使一個異步請求。 http://www.kaleidosblog.com/swift-uitableview-load-data-from-json – UlyssesR

+0

感謝,但它使用NSURLConnection的被廢棄了,因爲iOS的9.我probabl使用NSURLSession在IOS 7中引入我的部署目標是iOS的7所以它會做 – horin

相關問題