1

我正在尝试在我的一个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";
    }


}

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

4

1 回答 1

1

尝试这个:

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

//save
[context save:&error];
于 2013-11-08T10:15:36.157 回答