[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:YES];
[self.tableView endUpdates];
Этот фрагмент кода завершает работу моего приложения iOS и возвращает следующую ошибку:
Неверное обновление: недопустимое количество строк в разделе 0. Количество строк, содержащихся в существующем разделе после обновления (0), должно быть равно количеству строк, содержащихся в этом разделе до обновления (0) , плюс или минус количество строк, вставленных или удаленных из этого раздела (1 вставлено, 0 удалено).
Может кто-нибудь сказать мне, почему? И почему это говорит о том, что число строк после обновления равно нулю, когда одновременно говорится: 1 вставлено , 0 удалено ?
Обновление
Приведенный выше код срабатывает, когда я получаю push-уведомление во время выполнения. Когда это происходит, делегат добавляет полученные данные в словарь, хранящийся в файле .plist (которым табличное представление использует для заполнения своих ячеек), а затем вызывает пользовательский метод в RootViewController, где находится табличное представление. Этот метод выполняет приведенный выше код с последующим сбоем. Однако, когда я регистрирую [theDictionary count]
в - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
, число увеличивается так же, как и вправо до сбоя.
Также стоит отметить, что когда я регистрирую self.tableview
, я получаю другой «адрес памяти» от RootViewController, когда он загружается при запуске и при получении push-уведомления. Может быть, это как-то связано с этим?
Это мой - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
метод:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [theDictionary count];
}
И картинка ошибки:
