什麼是將Web服務數據緩存到核心數據中的好方法。主要目標是在設備上線或發生某些更新時將Web服務數據同步到核心數據中,並且用戶能夠也可以在離線狀態下獲取數據。那麼如何實現這個事情會有什麼好的建議。將Web服務數據緩存到核心數據
0
A
回答
1
嘗試RestKit:http://restkit.org/
RestKit的主要目標是讓開發者更多地考慮他們的應用程序的數據模型的 條款和少擔心發送請求,解析響應,並建立 的 細節遠程資源的表示。
2
我已經這樣做了。我的過程是使用一個網絡客戶端(在我的情況,AFNetworking),然後在成功的請求,我將做到以下幾點:
拆去核心數據實體
的所有對象的創建NSOperationQueue AppDelegate中,並使用該實例化一個新的ManagedObjectContext定製解析器類要在後臺線程
用於解析從Web服務的響應,並使用插入對象回CD實體在後臺線程
// Register context with the notification center
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self
selector:@selector(mergeChanges:)
name:NSManagedObjectContextDidSaveNotification
object:ctx];
然後,當我保存的管理對象(我做了一個節省每五點關),該通知將被髮送,並且此方法將被解僱:
- (void)mergeChanges:(NSNotification *)notification
{
id appDelegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *mainContext = [appDelegate managedObjectContext];
// Merge changes into the main context on the main thread
[mainContext performSelectorOnMainThread:@selector(mergeChangesFromContextDidSaveNotification:)
withObject:notification
waitUntilDone:NO];
}
這將更新的核心數據實體大多是在後臺,然後在主線程中合併更改(每五個「記錄」)。我最初的用戶界面是一個TableView,它依賴於正在更新的Core Data Entity,並且更新足夠快,足以讓用戶在新數據進入時能夠使用tableview(FetchedResultsController將管理插入新電視中的行)。
如果需要,我可以發送更多代碼,但其要點是使用NSOperationQueue在後臺線程上解析創建的託管對象,然後每隔一段時間(在我的情況下5條記錄)將更改合併到上下文中主線程的MOC。
相關問題
- 1. IOS/Xcode:將Web服務饋送保存到核心數據中
- 2. 將核心位置數據保存到核心數據?
- 3. 將核心數據保存到核心數據
- 4. 將核心數據保存到核心數據
- 5. 將數組保存到核心數據
- 6. iCloud,iOS 7中的Web服務的核心數據和數據
- 7. 本地核心數據數據庫與Web服務同步
- 8. iOS將核心數據保存到服務器/雲
- 9. android緩存web服務數據
- 10. 將IOS核心數據與Web服務同步?
- 11. 將核心數據與分頁Web服務同步
- 12. 將XMLRPC/Web服務與核心數據集成
- 13. 將UITextView存儲到核心數據中
- 14. 將視頻保存到核心數據
- 15. 將MKOverlay保存到核心數據
- 16. 將圖像保存到核心數據?
- 17. iPhone核心數據可以緩存NSManagedObjects?
- 18. 使用核心數據作爲緩存
- 19. 核心數據緩存瞬態屬性?
- 20. 核心數據和圖像緩存
- 21. 使用核心數據進行緩存
- 22. 核心數據或ASIHTTPRequest緩存?
- 23. Magento的核心配置數據緩存
- 24. 將數據移動到核心數據
- 25. 使用核心數據作爲本地緩存以從遠程Web服務檢索數據
- 26. 將核心數據實體保存在服務器上
- 27. WCF服務緩存數據?
- 28. 將數據從uitableview保存到核心數據
- 29. 將數據的訂購清單保存到核心數據中
- 30. 將JSON數據轉換並存儲到iOS核心數據中