iOS用のrestkitを利用するアプリケーションを構築しています。キャッシュエリアに問題があると思います。大量のデータを取得し、restkitを使用してコアデータにマッピングするために、アプリを最初の起動用にセットアップしました。すべてが正常に機能し、データがテーブルビューに表示されます。ここで、アプリをバックグラウンドに移動し、アプリをもう一度クリックして再開すると、同じメソッドを呼び出してデータをロードしますが、今回はバージョン番号をサーバーに送信して、変更、追加、または変更されたオブジェクトのみを取得します。最後のプル以降に削除されました。これはすべて正常にマップされますが、これらのオブジェクトを表示すると、最初のプルと同じデータが得られます。キャッシュの問題を解決できるかもしれないと思いますが、わかりません。ヘルプはありがたいです。
RKObjectManager * objectManager = [RKObjectManager objectManagerWithBaseURLString:@ "http://link.com"]; objectManager.client.requestQueue.showsNetworkActivityIndicatorWhenBusy = YES; objectManager.objectStore = [RKManagedObjectStore objectStoreWithStoreFilename:@ "34453434.sqlite"]; RKManagedObjectMapping * cliffMapping = [RKManagedObjectMapping mappingForClass:[Cliff class] inManagedObjectStore:objectManager.objectStore];
cliffMapping.primaryKeyAttribute = @"cliffID";
cliffMapping.rootKeyPath = @"cliffs";
[cliffMapping mapKeyPath:@"name" toAttribute:@"name"];
[cliffMapping mapKeyPath:@"cliffId" toAttribute:@"cliffID"];
[cliffMapping mapKeyPath:@"description" toAttribute:@"cliffDescription"];
[cliffMapping mapKeyPath:@"notes" toAttribute:@"notes"];
[cliffMapping mapKeyPath:@"city" toAttribute:@"city"];
[cliffMapping mapKeyPath:@"intensity" toAttribute:@"intensity"];
[cliffMapping mapKeyPath:@"latitude" toAttribute:@"latitude"];
[cliffMapping mapKeyPath:@"height" toAttribute:@"height"];
[cliffMapping mapKeyPath:@"longitude" toAttribute:@"longitude"];
[cliffMapping mapKeyPath:@"zipcode" toAttribute:@"zipcode"];
[objectManager.mappingProvider setMapping:cliffMapping forKeyPath:@"cliffs"];
[objectManager.mappingProvider addObjectMapping:cliffMapping];
RKManagedObjectMapping* stateMapping = [RKManagedObjectMapping mappingForClass:[State class] inManagedObjectStore:objectManager.objectStore];
stateMapping.rootKeyPath = @"States";
stateMapping.primaryKeyAttribute = @"stateID";
[stateMapping mapKeyPath:@"stateId" toAttribute:@"stateID"];
[stateMapping mapKeyPath:@"name" toAttribute:@"name"];
[stateMapping mapKeyPath:@"version" toAttribute:@"sversion"];
[stateMapping mapKeyPath:@"cliffAmount" toAttribute:@"cliffAmount"];
[stateMapping mapRelationship:@"cliffs" withMapping:cliffMapping];
[objectManager.mappingProvider setMapping:stateMapping forKeyPath:@"States"];
[objectManager.mappingProvider addObjectMapping:stateMapping];
[objectManager loadObjectsAtResourcePath:@"/Application/getEverything" usingBlock:^(RKObjectLoader *loader){
loader.serializationMIMEType = RKMIMETypeJSON;
loader.resourcePath = @"/Application/getEverything";
loader.method = RKRequestMethodPOST;
loader.delegate = self;
loader.objectMapping = stateMapping;
}];