0
我需要實現Core Data
對象的取消/保存行爲。我有一個UITableView
,我從中獲得了來自NSFetchedResultsController
的數據。在某些情況下只保存NSManagedContext
- (void) configureWithCategoryItem: (CategoryItem *) categoryItem
{
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:[CategoryItem entityName]];
request.predicate = [NSPredicate predicateWithFormat:@"categoryId = %@", categoryItem.categoryId];
request.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"title" ascending:YES]];
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:[CategoryItem defaultContext]
sectionNameKeyPath:@"title"
cacheName:nil];
[self.fetchedResultsController performFetch: NULL];
self.layers = [self categoryLayers];
self.sectionTitle = categoryItem.title;
}
每次點擊單元格在這個表視圖
LayerItem *layerItem = [self.layers objectAtIndex:indexPath.row];
layerItem.isSelected = [NSNumber numberWithBool:YES];
而在導航欄我有兩個按鈕: 取消 - 我需要沒有結果保存到核心駁回控制器數據, 保存 - 我需要保存結果並關閉控制器
保存方法現在看起來像這樣:
- (void) saveChanges
{
NSManagedObjectContext *localContext = self.fetchedResultsController.managedObjectContext;
if ([localContext hasChanges]) {
[localContext save: NULL];
[[NSNotificationCenter defaultCenter] postNotificationName:kEADatabaseWasUpdated object:nil];
}
}
Core Data
有沒有一些儀器可以幫我實現這個行爲?
我試圖單獨使用NSManagedObjectContext
和mergeChangesFromContextDidSaveNotification
,但沒有收到好結果..等待您的幫助。