如果数据已存在于数据库中,当我们点击按钮保存时,如何更新数据? 谢谢你的帮助。
- (IBAction)save:(id)sender {
NSManagedObjectContext *context = [self.recipe managedObjectContext];
if (!self.material) {
self.material = [NSEntityDescription insertNewObjectForEntityForName:@"Material" inManagedObjectContext:context];
[self.recipe addMaterialsObject:self.material];
self.material.displayOrder = [NSNumber numberWithInteger:self.recipe.materials.count];
}
[self.parentViewController dismissViewControllerAnimated:YES completion:nil];
}
答案 0 :(得分:1)
这取决于您如何将Material
实体的实例定义为相等。例如,100克面粉和200克面粉相同(它们应该是,你应该找到一种方法将数量与成分分开......)。
您可以实现方法isEqualToMaterial:(Material*)otherMaterial
并比较基本属性,例如名称和类别。在插入新的实体对象之前,您可以改为使用现有的实体对象。
但是,从您的代码中我看到您在材质对象中存储displayOrder
,这取决于配方中的材料数量。这可能会覆盖任何现有的displayOrder
- 因此您目前使用多种大致相同的材料设置,虽然不理想,但可能就是您想要的。
也许您应该重新考虑您的数据模型设置,并设计一种方式,用户可以在开始输入自己的成分列表之前从成分列表中选择。