0

私はsqliteデータベースを使用したプロジェクトを持っており、MagicalRecordライブラリを介してそれを操作しています:

[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:storeFileName];

アプリの現在のバージョンでは、一時オブジェクトを介して Web サービス (RPC) を操作します。リクエストを送信し、レスポンスをオブジェクトにマップして表示します。データベースには、ユーザーがお気に入りに追加したアイテムのみを保存します。

今、単純なキャッシュとアプリのオフライン作業のために AFIncrementalStore で API 呼び出しを実装したいと考えています。最初の質問は、既存の CoreData スタックに AFIncrementalStore を追加するにはどうすればよいですか? たとえば、メモリにストアを追加しようとしています:

NSPersistentStoreCoordinator *coordinator = [NSPersistentStoreCoordinator MR_defaultStoreCoordinator];

AFIncrementalStore *incrementalStore = (AFIncrementalStore *)[coordinator addPersistentStoreWithType:[RPCAPIIncrementalStore type] configuration:nil URL:nil options:nil error:nil];
NSError *error = nil;
if (![incrementalStore.backingPersistentStoreCoordinator addPersistentStoreWithType:NSInMemoryStoreType configuration:nil URL:nil options:nil error:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
}

しかし、ローカル データベースからエンティティをフェッチしようとすると (そのエンティティの API 呼び出しは必要ありません)、API インクリメンタル ストアがその要求を処理し、サーバーからこのアイテムを取得しようとします!

リモート データベースとローカルのオブジェクトを効率的に処理するには、スタックを適切に構成する方法を教えてください。これは AFIncrementalStore で可能ですか?

4

1 に答える 1