2012-07-03 2 views
0

Так я удаляющие объекты в подвид, и когда я иду обратно навигации стека к представлению родительской таблицы и загрузить данные, которые я получаю ошибкуUITableView строки несогласованность ошибка данных мастика

Invalid обновление: недействительный количество строк в разделе 4. Количество строк , содержащихся в существующем разделе после обновления (58), должно быть , равное количеству строк, содержащихся в этом разделе, перед обновлением (59) , плюс или минус количество строки, вставленные или удаленные из , этот раздел (вставлен 0, 0 удален) и плюс или минус число строк , перемещенных в этот раздел или из него (0 переместился, 0 выехал).

Таким образом, количество строк 58 верное, но как мне обойти эту ошибку, поскольку я фактически не удаляю элементы или строки в этом представлении, а скорее удаляю данные в подвью. Я не физически удаляю любые строки перед перезагрузкой. Это родительское представление фактически не знает, что делают под-представления, и просто получает свежий источник данных со всеми изменениями в методе перезагрузки. В базе данных есть элемент, удаленный в подвью, а перезагрузка в представлении таблицы родительского контроллера показывает это новое количество обновленных элементов. Должен ли я рассчитать, сколько меньше строк существует с момента последнего обновления и уменьшения, и каким-то образом удалил свойство?

Могу ли я игнорировать проверку согласованности, когда я вызываю метод reloadData таблицы?

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

    if (section==recentPhotosCellIndex) { 
     return [arrayOfPosts count] 
    } 
    else 
     return 1; 
} 

ответ

0

Что вы используете в качестве источника данных? Вы уверены, что удаляете его оттуда? Обратите внимание, что указано, что удалено 0 строк. Убедитесь, что вы удаляете его из представления, а также источника данных.

+0

Это NSMutableArray, и элемент удаляется из источника данных с помощью подзадачи. 0 строк были удалены, но у источника данных меньше предметов. Я не удаляю строки из представления перед перезагрузкой. – MonkeyBonkey

0

У вас нет жесткого кодирования в вашем разделе/​​строках?

+0

Нет, он получает количество строк из источника данных, обновляется источник данных. – MonkeyBonkey

+0

И я полагаю, что ваш вызов метод Delegate информирует представление о представлении вверх по стеку, чтобы перезагрузить его модель данных до [self.tableView reloadData]? – GeoffCoope

+0

Да, данные выглядят отлично, это только перезагрузкаДата, которая является ошибкой с новыми обновленными данными, поскольку в ней меньше строк. – MonkeyBonkey