Web サービスと同期するため、Restkit を使用してアプリを作成しています。最初の loadObjectsAtResourcePath 呼び出しは適切に機能しますが、追加の呼び出しごとにすべて NULL の新しい行が作成されます。一般的な JSON 応答は次のとおりです。
[{"item":{"created_at":"2012-04-19T19:42:44Z","id":4,"json_event_id":null,"name":"Biz Cards","theme_id":null,"updated_at":"2012-04-19T19:42:44Z","url":"","user_id":3}},{"item":{"created_at":"2012-04-20T19:37:33Z","id":5,"json_event_id":null,"name":"Hummus","theme_id":null,"updated_at":"2012-04-20T19:37:33Z","url":"","user_id":3}}]
loadObjectsAtResourcePath を初めて呼び出すと、コア データで作成された 2 つのオブジェクトが正しく取得されます。次に呼び出すと、Sqlite に新しい PK とすべての NULL を持つ追加の行が取得されます。以降の各呼び出しでは、PK が増分された新しい NULL 行が作成されます。
これが私のマッピングです:
RKManagedObjectMapping *itemsMapping = [RKManagedObjectMapping mappingForClass:[Items class] inManagedObjectStore:objectManager.objectStore];
itemsMapping.primaryKeyAttribute = @"itemID";
[itemsMapping mapKeyPathsToAttributes:@"created_at", @"createdAt",
@"id", @"itemID",
@"json_event_id", @"json_event_id",
@"name", @"name",
@"theme_id", @"theme_id",
@"updated_at", @"updatedAt",
@"url", @"url",
@"user_id", @"user_id", nil];
そして、これが私のWebサービスへの呼び出しです。
RKObjectManager *objectManager = [RKObjectManager sharedManager];
[objectManager loadObjectsAtResourcePath:@"/items" delegate:self];
これがこれらの追加の行を作成している理由についての助けをいただければ幸いです!