ios - 更新iPhone中xcdatamodel中的数据

标签 ios xcode xcdatamodel

我有带有 xcdatamodeld 的 ios 应用程序,我想更新一些数据,所以需要一个代码

我有插入代码

NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity];
NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
[newManagedObject setValue:txtName.text forKey:@"name"];   [newManagedObject setValue:txtid.text forKey:@"id"];     
// Save the context.
NSError *error = nil;
if (![context save:&error]) {      
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
}

和删除

NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
    [context deleteObject:[self.fetchedResultsController objectAtIndexPath:indexPath]];

但我需要代码来更新我的数据。

最佳答案

您可以简单地使用 NSFetchRequest 选择数据(并且可能对描述符和谓词进行排序)。您将返回一个包含该获取请求结果的数组。这些结果都是您选择的实体类型,然后您需要做的就是更新这些子类的属性。一个例子是这样的:

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntity:@"Car"];
request.predicate = [NSPredicate predicateWithFormat:@"make == %@", @"Ford"]; // make is an attribute of the Car entity

NSArray *fetchResults = [self.fetchedResultsController.managedObjectContext executeFetchRequest:request error:nil];
Car *car = [fetchResults objectAtIndex:0]; // First result
car.make = @"Chevrolet";

现在,您的核心数据后端将自动更新为具有品牌为 Chevrolet 的 Car 对象。

关于ios - 更新iPhone中xcdatamodel中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11002244/

相关文章:

从xib加载时iOS黑屏

ios - Parse sdk 在调用查询 api 时崩溃

iphone - UIAlertView 需要时间来显示

objective-c - 在 objective-c 中的两个 View Controller 之间共享对象

ios - 在数据库中存储数组属性

javascript - React-Native TouchableNativeFeedback.Ripple 不起作用

ios - swift 中嵌套字典 API 的结构

ios - Xcode 中的 Build Configuration 仅显示 Release

swift - 无法将字符串保存到 CoreData 中

ios - 将旧数据模型转换为全新的数据模型(从头开始并删除其他所有内容)