使用 NSFetchedResultsController 更新 CoreData 对象
Update CoreData Objects with NSFetchedResultsController
我制作了一个使用核心数据和获取结果控制器的应用程序。
我可以添加 CoreData 对象,也可以删除它们。现在我想通过获取的结果控制器更新一个 CoreData 对象。我知道我必须获取对象然后才能更改它。但是因为我还在学习,所以我不知道该怎么做。现在想请教一下这个怎么弄?
当您从 CoreData 获取时,如果您修改结果,它会在您保存时更新 CoreData 中的实际值。
您需要先执行提取:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Entity" inManagedObejctContext:moc]];
NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error:&error];
// error handling code
获得结果后,您可以修改各个记录...
MyEntity *entity = [results objectAtIndex:0];
entity.title = @"updated attribute";
// save context
[moc save:&error];
编辑:在 swift 中,它将类似于以下内容:
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
var moc = appDelegate.managedObjectContext!
var fetchRequest = NSFetchRequest()
fetchRequest.entity = NSEntityDescription.entityForName("Entity", inManagedObjectContext: moc)
var error: NSError?
var results = moc.executeFetchRequest(fetchRequest, error: &error)
// error handling code
var entity: MyEntity = MyEntity()
entity.title = "updated attribute"
moc.save(&error)
我制作了一个使用核心数据和获取结果控制器的应用程序。
我可以添加 CoreData 对象,也可以删除它们。现在我想通过获取的结果控制器更新一个 CoreData 对象。我知道我必须获取对象然后才能更改它。但是因为我还在学习,所以我不知道该怎么做。现在想请教一下这个怎么弄?
当您从 CoreData 获取时,如果您修改结果,它会在您保存时更新 CoreData 中的实际值。
您需要先执行提取:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Entity" inManagedObejctContext:moc]];
NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error:&error];
// error handling code
获得结果后,您可以修改各个记录...
MyEntity *entity = [results objectAtIndex:0];
entity.title = @"updated attribute";
// save context
[moc save:&error];
编辑:在 swift 中,它将类似于以下内容:
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
var moc = appDelegate.managedObjectContext!
var fetchRequest = NSFetchRequest()
fetchRequest.entity = NSEntityDescription.entityForName("Entity", inManagedObjectContext: moc)
var error: NSError?
var results = moc.executeFetchRequest(fetchRequest, error: &error)
// error handling code
var entity: MyEntity = MyEntity()
entity.title = "updated attribute"
moc.save(&error)