使用NSFetchedResultsController更新核心数据对象

时间:2015-04-01 13:31:12

标签: ios swift core-data nsfetchedresultscontroller

我创建了一个使用Core Data和获取结果控制器的应用程序。

我可以添加CoreData对象并删除它们。现在我想通过fetched results controller更新CoreData对象。我知道我必须获取对象,然后我可以更改它。但因为我还在学习,所以我不知道该怎么做。现在我想问你怎么做?

1 个答案:

答案 0 :(得分:0)

从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];

编辑:在迅速,它将是以下几点:

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)