Ios 使用NSFetchedResultsController更新CoreData对象

Ios 使用NSFetchedResultsController更新CoreData对象,ios,swift,core-data,nsfetchedresultscontroller,Ios,Swift,Core Data,Nsfetchedresultscontroller,我制作了一个应用程序,它使用核心数据和控制器获取的结果 我可以添加CoreData对象,也可以删除它们。现在我想通过获取结果控制器更新CoreData对象。我知道我必须取回对象,然后才能更改它。但因为我还在学习,我不知道怎么做。现在我想问您如何做到这一点?当您从CoreData获取数据时,如果您修改结果,它将在您保存数据时更新CoreData中的实际值 您将首先执行提取: NSFetchRequest *request = [[NSFetchRequest alloc] init]; [requ

我制作了一个应用程序,它使用核心数据和控制器获取的结果


我可以添加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)

谢谢你的回答。如何在Swift中执行此操作?我更新了答案以包含Swift代码。我没有在Swift上做太多的工作,但它应该与我发布的内容非常相似;var moc=appDelegate.managedObjectContext!;对不起,我跳过了那部分。。。我本应该包含itI,但我收到了以下错误:“UIApplication”不能转换为“AppDelegate”,并且此错误:使用未声明的类型“MyEntity”,我猜这一次会出现错误,但请确保您使用的是UIApplication.sharedApplication.delegate。此外,MyEntity只是一个可以从CoreData使用的实体的示例。您需要将该部分替换为您在CoreData模型中定义的实际CoreData实体和属性。这是一个很好的教程: