我有很多条的品类很多关系的核心数据。试图保存时,出现以下错误。我无法找到有关它的含义的信息,以及数据库为空时为什么有两个版本。任何人都可以点亮一下吗?iOS版:核心数据错误:NSMergeConflict为NSManagedObject
错误:NSMergeConflict (0x76ae720) for NSManagedObject (0xd945560) with objectID '0xd943550 <x-coredata://09A438A8-E3F5-45FE-B9D7-106798E82E18/Article/p91>' with oldVersion = 1 and newVersion = 2
代码:
NSMutableDictionary *dict = [[data objectAtIndex:i] valueForKey:@"category_names"];
NSMutableArray *values = [[NSMutableArray alloc] init];
for (NSString *value in [dict allValues]) {
NSLog(@"value = %@", value);
[values addObject:value];
}
NSMutableSet *setElements = [[NSMutableSet alloc] init];
for (int i = 0; i < [values count]; i++) {
Category *cat = [self getCategoryFor:[values objectAtIndex:i]]; // Function which has fetch to get the category for the value "name"
[setElements addObject:cat];
}
if ([setElements count] > 0)
[article addCategories:setElements];
// Save the context.
NSError* error;
if (![managedObjectContext save:&error]) {
NSLog(@"Failed to save to data store: %@", [error localizedDescription]);
NSArray* detailedErrors = [[error userInfo] objectForKey:NSDetailedErrorsKey];
if(detailedErrors != nil && [detailedErrors count] > 0) {
for(NSError* detailedError in detailedErrors) {
NSLog(@" DetailedError: %@", [detailedError userInfo]);
}
} else
NSLog(@" %@", [error userInfo]);
}
[article release];
[values release];
[setElements release];
谢谢你的帮助。我将数据添加到sqlite,然后将sqlite添加到项目中。这似乎会导致某种类型的版本问题。我加入的代码所需要的所有数据,采取了DB了模拟器,它添加到项目中,问题就走开了。 – 2010-11-18 16:49:23
这是非常困难的,直接添加数据到核心数据的SQL存储,因为它使用它自己的无证架构。 – TechZen 2010-11-18 18:10:07