2012-07-05 37 views
1

我是一名新的iOS開發人員,我正在製作一個iOS應用程序,它使用來自Restful Web服務的信息。我能夠從服務器獲取數據,但有時數據需要一段時間才能加載。數據的某些方面不會隨時發生變化(例如,商店銷售的商品),但數據的各個方面每天都會發生變化(例如,某個商品的庫存數量)。 我想將不會一直更改的數據存儲到iOS內存中。從我的研究看來,核心數據看起來是實現這一目標的最佳方式。如何使用Restkit和核心數據存儲對象和種子預加載的數據

如何將不會一直改變的對象數據存儲到iOS核心數據中,並讓它在啓動時加載該數據,然後獲取隨後一直改變的信息?

我做了一些搜索,看起來像我的理解,我可以通過獲取數據來利用核心數據,然後將其存儲到數據庫中。然後,我可以從NSManagedObjects中獲取預加載的數據並在運行時顯示它們。

這是一個正確的方法嗎? 此外,如果數據發生變化(銷售新產品),Restkit是否會處理這些數據並將其存儲到核心數據中,還是需要設置它來注意變化?

謝謝你的幫助!

回答

1

使用RestKit,您可以基於您的CoreData模型構建數據庫,但也可以使用預填充的數據庫進行構建。

你的ObjectManager應該是這樣的:

RKObjectManager* objectManager = [RKObjectManager managerWithBaseURLString:@"http://your-url.com"]; 
objectManager.objectStore = [RKManagedObjectStore objectStoreWithStoreFilename:@"new-database.sqlite" usingSeedDatabaseName:nil managedObjectModel:nil delegate:self]; 

或類似這樣的,如果你想預填充的數據庫的副本:

objectManager.objectStore = [RKManagedObjectStore objectStoreWithStoreFilename:@"new-database.sqlite" usingSeedDatabaseName:@"last-database.sqlite" managedObjectModel:nil delegate:self]; 

你最後database.sqlite必須集成像一個複製束資源。

如果您不想刷新所有數據,此係統可以爲您提供幫助。

0

查看RestKit示例目錄並打開RKTwitterCoreData項目。它向您展示了一個系統正在執行您描述的內容。

相關問題