Skip to content

Instantly share code, notes, and snippets.

@Goles
Created December 10, 2012 23:11
Show Gist options
  • Save Goles/4254223 to your computer and use it in GitHub Desktop.
Save Goles/4254223 to your computer and use it in GitHub Desktop.
// In my Core Data Model a Category has a one to many relation with CategoryMembers
- (void) loadCoreDataFromJSONArray:(NSArray *) jsonArray
{
[jsonArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
// Create our category
Category *category = [NSEntityDescription insertNewObjectForEntityForName:@"Category" inManagedObjectContext:self.managedObjectContext];
category.name = [obj objectForKey:@"name"];
// Traverse the category members
NSArray *membersArray = [obj objectForKey:@"members"];
[membersArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
CategoryMember *categoryMember = [NSEntityDescription insertNewObjectForEntityForName:@"CategoryMember" inManagedObjectContext:self.managedObjectContext];
categoryMember.name = [obj objectForKey:@"name"];
categoryMember.value = [obj objectForKey:@"value"];
categoryMember.previousValue = [obj objectForKey:@"previous_value"];
//
// How can I know if categoryMember is already present in self.managedObjectContext so I can avoid re-inserting it?
//
// Add category member to it's category
[category addMembersObject:categoryMember];
}];
NSError *error;
if (![self.managedObjectContext save:&error]) {
NSLog(@"Error while trying to seed core data: %@", [error localizedDescription]);
}
}];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment