更新 CoreData iOS

Posted

技术标签:

【中文标题】更新 CoreData iOS【英文标题】:Update CoreData iOS 【发布时间】:2013-04-03 23:13:08 【问题描述】:

我想知道如何更新从 tableView 中选择的 coredata 记录 我保存核心数据的代码是:

- (IBAction)juardar:(id)sender 

NSUserDefaults *defs=[NSUserDefaults standardUserDefaults];

NSString *sedef_mat=[NSString stringWithFormat:@"%@",[defs objectForKey:@"Materia"]];
//NSLog(@"%@",sedef_mat);

NSManagedObjectContext *context = [self managedObjectContext];

// Create a new managed object
NSManagedObject *newtarea = [NSEntityDescription insertNewObjectForEntityForName:@"Tareas" inManagedObjectContext:context];
[newtarea setValue:self.Nombre.text forKey:@"nombre"];
[newtarea setValue:self.Descripcion.text forKey:@"descripcion"];
[newtarea setValue:sedef_mat forKey:@"materia"];

NSError *error = nil;
// Save the object to persistent store
if (![context save:&error]) 
    //NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);

谢谢

【问题讨论】:

【参考方案1】:

只需设置新值,然后像上面那样保存上下文。但是您将使用获取的结果:

for (Tareas *object in fetchedResultsController.fetchedObjects)

    Tareas *t = (Tareas *)object;
    if ([t.nombre isEqualToString:@"NewValue1"])
    
        Tareas.nombre = @"NewValue1";
        Tareas.description = @"NewValue2";
        Tareas.materia = @"NewValue3";
    

然后像上面那样保存上下文:

if (![context save:&error])
    etc.

【讨论】:

以上是关于更新 CoreData iOS的主要内容,如果未能解决你的问题,请参考以下文章

iOS CoreData 增删改查

更新 iOS Core Data 版本以避免崩溃

iOS CoreData / NSFetchedResultsController:将每个部分的结果限制为 3

iOS Core Data:使用 Foundation 对象添加属性

iOS CoreData+MoGenerator:如何仅在使用嵌套上下文时初始化托管对象一次?

如何在 CoreData 中保存位置