我创建了一个使用Core Data和获取结果控制器的应用程序。
我可以添加CoreData对象并删除它们。现在我想通过fetched results controller更新CoreData对象。我知道我必须获取对象,然后我可以更改它。但因为我还在学习,所以我不知道该怎么做。现在我想问你怎么做?
答案 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)