У меня есть проект, над которым я работаю. Код, который дал мне проблемы, работал вчера, и я не внес никаких изменений в эту часть кода, поскольку, когда я пытался запустить его сегодня, он не работал.Xcode commitEditingStyle UITableViewCellEditingStyleDelete не работает
Проблема в том, что когда я пробираюсь по ячейке, чтобы ее удалить, она не обнаружена и метод commitEditingStyle никогда не запускается.
Я также сделал еще один проект, чтобы проверить метод commitEditingStyle, и он работал нормально. Я также очистил проект (Product -> Clean) и сбросил iOS-симулятор.
Что еще я могу попробовать?
Вот мой код, не беспокойтесь о NSUserDefaults, это для сохранения изменений после удаления ячейки.
-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return YES; }
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
[self.taskObjects removeObjectAtIndex:indexPath.row];
NSMutableArray *newTaskObjectsData = [[NSMutableArray alloc] init];
for(Model *task in self.taskObjects)
{
[newTaskObjectsData addObject:[self taskObjectAsPropertyList:task]];
}
[[NSUserDefaults standardUserDefaults] setObject:newTaskObjectsData forKey:USER_KEY];
[[NSUserDefaults standardUserDefaults] synchronize];
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
}
Он все еще не работает, проблема в том, что метод commitEditingStyle никогда не вызывается, когда пользователь щелкает прямо в ячейке. – Ben