2015-04-01 4 views
0

Я сделал приложение, в котором используется Core Data и контроллер получаемых результатов.Обновление объектов CoreData с помощью NSFetchedResultsController

Я могу добавить объекты CoreData, а также удалить их. Теперь я хочу обновить объект CoreData с помощью выбранного контроллера результатов. Я знаю, что мне нужно получить объекты, а затем я могу их изменить. Но поскольку я все еще участвую, я не знаю, как это сделать. Теперь я хотел бы спросить вас, как это сделать?

ответ

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

EDIT: В быстры, он будет что-то вроде следующего:

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) 
+0

Спасибо за ваш ответ. Как я могу сделать это в Swift? – user3592462

+0

Я обновил ответ, чтобы включить быстрый код. Я не слишком много работал с Swift, но он должен быть похож на то, что я опубликовал. –

+0

moc - это неразрешенный идентификатор – user3592462