-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if(editingStyle==UITableViewCellEditingStyleDelete)
{
NSManagedObjectContext *context=[appDelegate managedobjectcontext];
NSManagedObject *entity=[NSEntityDescription insertNewObjectForEntityForName:@"DataObject" inManagedObjectContext:context];
for(int i=0;i<[saveddata count];i++)
{
entity=[saveddata objectAtIndex:indexPath.row];
[context deleteObject:entity];
[array removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:YES];
NSError *error=nil;
if(![context save:&error])
{
//handle the error.
}
}
答案 0 :(得分:0)
是否有使用for循环的原因?它们被删除了,因为当回到for循环时,tableView已经删除了行,它将下一行向上移动一个单位。更详细的,如果你有3行并删除indexPath.row = 1的那一行,indexPath.row = 2的行将在indexPath.row = 1处移动。 另外,我建议从创建tableview时使用的数组中删除对象。