核心数据一次保存多个相关属性

时间:2014-03-12 10:38:15

标签: ios core-data

我正在使用两个实体构建一个非常简单的应用程序:PersonCategories

在我的AddPersonViewController中,我有一个人名的字段和一个表格视图,其中多个选项已启用预定义的类别。

我希望能够选择多个类别,并在按下“保存”按钮时将其与人名一起保存。

我可以找到许多保存一个相关实体的例子,但不能同时保存几个。

EDITED

我选择了类别并将它们放在一个数组中,然后我保存了用户,但它只保存了数组的最后一个类别。

这是我的保存方法:

- (IBAction)save:(id)sender {

//saves the user name
Users *name = [NSEntityDescription insertNewObjectForEntityForName:@"Users"inManagedObjectContext:self.managedObjectContext];
name.userName =  addUserField.text;

NSError *error = nil;
if(![managedObjectContext save:&error]){
    NSLog(@"Error! %@", error);
}

//saves the related categories
Kind *kind = [NSEntityDescription insertNewObjectForEntityForName:@"Kind"inManagedObjectContext:self.managedObjectContext];
for (int k=0; k < [_addCathegoryArray count]; k++) {
    NSString *kindString = [[_addCathegoryArray objectAtIndex:k] description];
    [kind setValue:kindString forKey:@"kindName"];
    [name addHasKindsObject:kind];
}
if(![managedObjectContext save:&error]){
    NSLog(@"Error! %@", error);
}

[self dismissViewControllerAnimated:YES completion:nil];

}

1 个答案:

答案 0 :(得分:1)

保存是在上下文中完成的,而不是在单个属性或实体上完成的。

简单地说,当您保存时,您保存了对上下文中对象所做的所有更改。

相关问题