2015-01-29 2 views
0

Я использую компонент RATreeView в https://github.com/Augustyniak/RATreeView от Rafał Augustyniak.Crash with tableView endUpdates с использованием RATreeView

Используя размещенную код/​​Demo на GitHub:

Добавить:

RADataObject *rdo = [self.data objectAtIndex:0]; 
[self.treeView expandRowForItem:[rdo.children objectAtIndex:0]]; 

в нижней части viewWillAppear.

Изменение линии объектов телефона к:

(void)loadData 
{ 
RADataObject *phone2 = [RADataObject dataObjectWithName:@"Phone 2" children:nil]; 
RADataObject *phone3 = [RADataObject dataObjectWithName:@"Phone 3" children:nil]; 
RADataObject *phone4 = [RADataObject dataObjectWithName:@"Phone 4" children:nil]; 

RADataObject *phone1 = [RADataObject dataObjectWithName:@"Phone 1" children:[NSArray arrayWithObjects:phone2, phone3, phone4, nil]]; 

RADataObject *phone = [RADataObject dataObjectWithName:@"Phones" 
children:[NSArray arrayWithObjects:phone1, nil]]; 

(Это дает вложенный список, где телефон -> телефон 1 -> phone2, phone3, phone4)

Это воспроизводит аварии, которые У меня в приложении.

Он падает на:

(void)expandCellForTreeNode:(RATreeNode *)treeNode withRowAnimation:(RATreeViewRowAnimation)rowAnimation 

с EXC_BAD_ACCESS для:

[self.tableView endUpdates]; 

Я прослежена через это в течение нескольких дней, и я не уверен, как работать вокруг этой аварии (или даже почему это происходит).

ответ

1

Сообщение об ошибке, которое я получаю с использованием вашего кода, является следующим. Чтобы воспроизвести эту ошибку, переместите [self.treeView expandRowForItem:[rdo.children objectAtIndex:0]]; в viewDidAppear.

Нагрузочного приложение из-за неперехваченное исключением «NSInternalInconsistencyException», причина: «Invalid обновления: недопустимый количества строк в разделе 0. Число строк, содержащихся в существующей секции после обновления (24) должен быть равное числу строк , содержащихся в этом разделе перед обновлением (12), плюс или минус количество строк, вставленных или удаленных из этого раздела (24 вставлено, 0 удалено) и плюс или минус количество строк, перемещенных в или из этот раздел (0 перемещен, 0 перемещен). '

Число строк изменилось на 24, скопировав существующие строки и вставив их в таблицу, но вставка не удалась.

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

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; 
RATreeNode *treeNode = [self.treeView treeNodeForIndexPath:indexPath]; 
[self.treeView expandCellForTreeNode:treeNode]; 

NSIndexPath *indexPath1 = [NSIndexPath indexPathForRow:1 inSection:0]; 
RATreeNode *treeNode1 = [self.treeView treeNodeForIndexPath:indexPath1]; 
[self.treeView expandCellForTreeNode:treeNode1]; 

Это как если бы вы последовательно нажимали строку 0 и строку 1. Вам также нужно импортировать этот файл заголовка.

#import "RATreeView+Private.h" 
+1

#import "RATreeView + Private.h" -> Xcode eror - "файл не найден" –

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