我正在使用两个实体构建一个非常简单的应用程序:Person
和Categories
。
在我的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];
}
答案 0 :(得分:1)
保存是在上下文中完成的,而不是在单个属性或实体上完成的。
简单地说,当您保存时,您保存了对上下文中对象所做的所有更改。