我使用以下代码从表视图和核心数据中删除记录。但是记录只从表视图中删除,而不是从核心数据中删除:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
[tableView beginUpdates];
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
[self.managedObjectContext deleteObject:[self.fetchedRecordsArray objectAtIndex:indexPath.row]];
NSError *error;
if (![self.managedObjectContext save:&error]) {
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
tpAppDelegate* appDelegate = [UIApplication sharedApplication].delegate;
self.fetchedRecordsArray = [appDelegate getAllRecords];
[tableView endUpdates];
}
}
答案 0 :(得分:-1)
在CoreData中,首先必须使用NSFetchRequest和NSPredicate来获取必须删除的对象。
然后,您应该遍历NSManagedObject并调用deleteObject。