当我提出请求并尝试将响应放入Core Data时,我收到以下错误。
Performing managed object mapping with a nil managed object cache:
Unable to update existing object instances by identification attributes. Duplicate objects may be created.
我设置了identifyactionAttributes,我正在使用对象管理器来配置请求操作。我仍然收到“无法更新现有对象实例......”
objectMapping = [RKEntityMapping mappingForEntityForName:@"Entity" inManagedObjectStore:self.managedObjectStore];
objectMapping.identificationAttributes = @[ @"route_id" ];
[objectMapping addAttributeMappingsFromDictionary:@{
@"point_alt" : @"point_alt",
@"point_lat" : @"point_lat",
@"point_long" : @"point_long",
@"location_id" : @"location_id",
@"route_id" : @"route_id"
}];
NSMutableURLRequest *request = [[RKObjectManager sharedManager] requestWithObject:nil method:RKRequestMethodPOST path:path parameters:paramsWithEncr];
RKManagedObjectRequestOperation *operation = [[RKObjectManager sharedManager] managedObjectRequestOperationWithRequest:request managedObjectContext:self.managedObjectStore.mainQueueManagedObjectContext success:^(RKObjectRequestOperation *operation, RKMappingResult *result) {
NSLog(@"Loading mapping result: %d", result.count);
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"Fail!");
}];
答案 0 :(得分:1)
我没有使用对象管理器配置Core Data集成。如果您遇到同样的问题,应该怎么做:
NSManagedObjectModel *managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil];
RKManagedObjectStore *managedObjectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:managedObjectModel];
NSString *path = [RKApplicationDataDirectory() stringByAppendingPathComponent:@"Store.sqlite"];
[managedObjectStore addSQLitePersistentStoreAtPath:path fromSeedDatabaseAtPath:nil withConfiguration:nil options:nil error:nil];
[managedObjectStore createManagedObjectContexts];