2012-04-26 3 views
-1

Вот мой код, который должен удалить выбранную строку. Это приводит к сбою приложения, поскольку он утверждает, что количество строк неверно. Я проверил, и это неверно; строка в таблице была удалена, но, видимо, количество строк не обновлено (код действительно попадает) ... как это возможно? (У меня есть другой UITableViewController с точным кодом, который работает). Как это исправить?UITableView: Почему «количество строк» ​​не обновляется после удаления?

if (editingStyle == UITableViewCellEditingStyleDelete) { 

    // remove row from the table 
    SQLite *sql = [[SQLite alloc] init]; 
    [sql deleteReadingsRow: indexPath.row]; 

    // Delete the row from the data source 
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
} 

Вот код, который определяет количество строк:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 

    SingletonListOfReadings *rShareInstance = [SingletonListOfReadings sharedInstance]; 

    return rShareInstance.listOfReadings.count; // Return the number of rows in the section 
} 

ответ

0

Я нашел проблему ... Я опирающийся на одноэлементном (SingletonListOfReadings), который не было сбрасывается, когда строка была удалены в таблице d/b.

0

В то время как вы нашли свою проблему, вы должны изучить вместо этого NSFetchedResultsController. При небольшой работе он может автоматически обновлять таблицу, когда строки добавляются, удаляются или изменяются. Это более надежное решение в целом, чем в зависимости от синхронизации синглонов. Существует множество примеров использования его со столами.

Смежные вопросы