1

私は新しい iOS 開発者で、Restful Web サービスからの情報を使用する iOS アプリを作成しています。サーバーからデータを取得できますが、データの読み込みに時間がかかることがあります。常に変化しないデータの側面 (たとえば、店舗が販売する商品) もありますが、データの側面には毎日変化する側面 (たとえば、特定の商品の在庫数) があります。常に変化しないデータを iOS メモリに保存したい。私の調査によると、これを行うにはコア データが最適な方法のようです。

常に変化しないオブジェクト データを iOS のコア データに格納し、起動時にそのデータをロードして、後で常に変化する情報を取得するにはどうすればよいですか?

私はいくつかの検索を行いましたが、私の理解では、データを取得してからデータベースのように見えるものに保存することでコアデータを利用できるようです。次に、NSManagedObjects からプリロードされたデータを取得し、実行時に表示できます。

これは正しいアプローチですか?また、データに変更 (新しいアイテムの販売) がある場合、Restkit はこれを処理してコア データに保存しますか、それとも変更を通知するように設定する必要がありますか?

ご協力ありがとうございました!

4

2 に答える 2

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];

last-database.sqliteは、コピーバンドルリソースのように統合する必要があります。

このシステムは、すべてのデータを更新したくない場合に役立ちます。

于 2012-07-06T14:43:27.310 に答える
0

RestKit Examplesディレクトリを見て、RKTwitterCoreDataプロジェクトを開きます。それはあなたが説明したことを正確に実行しているシステムを示しています。

于 2012-07-06T07:18:13.677 に答える