如何编辑核心数据值,然后保存上下文以覆盖旧值



我正在尝试编辑我的一个coredata表/实体中的项目。我不是 100% 确定如何做到这一点,但我认为它是沿着这些思路。

首先创建上下文,然后使用谓词fetchrequest实体,以从表/实体中选择确切的项。 然后将这些值保存到正确的 var 类型中 更新值,然后用新值覆盖现有项目。

最后一部分是我卡住的地方,这是我目前拥有的代码:

- (void)editSelectedInstall:(NSString *)invGuid {
    NSManagedObjectContext *context = [self managedObjectContext];

    if (context == nil) {
        NSLog(@"Nil");
    }
    else {

        NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
        NSEntityDescription *entity = [NSEntityDescription entityForName:@"Install" inManagedObjectContext:context];
        [fetchRequest setEntity:entity];
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"invGUID==%@",invGuid];
        [fetchRequest setPredicate:predicate];
        NSError *error = nil;
        NSArray *myArray = [context executeFetchRequest:fetchRequest error:&error];
        NSMutableDictionary *myDictionary = [myArray objectAtIndex:0];
        NSLog(@"%@", myDictionary);


// Here I will update the values & then save the context? 
// For example I think I am to update the items like this:
myDictionary.num = @"1234";
myDictionary.name = @"new name";
    }

}

我想我快到了,我只需要帮助保存上下文,以便它覆盖以前的值。

试试这个:

//loop through result set and update as required
for (Install *temp in myArray) {
    temp.num = @"1234";
    temp.name = @"New name";
}
//save
[context save:&error];

相关内容

  • 没有找到相关文章