2016-03-02 2 views
1

i уже проверено решение Using NSTableView insertRowsAtIndexes, но оно не решает мою проблему.
я хочу вставить строку в NSTableView в частности, индекс (добавить динамически) индекс Set действительно, до сих пор она вызывает падение программыOSX NSTableView insertRowAtIndexes

NSIndexSet *indexSet=[NSIndexSet indexSetWithIndex:i]; 
[myTableView insertRowsAtIndexes:indexSet withAnimation:NSTableViewAnimationEffectFade]; 

1) любая вещь неправильно в моем коде?
2) Есть ли другой способ добавить строку в определенный индекс (добавить динамически)?

ответ

1

Я получил Мою ошибку ..... проблемы в другом коде так Этот код прекрасно
Но я хочу, чтобы добавить некоторые моменты О insertRowsAtIndexes: метода
Надеется, что это будет помогает другим людям
1) Dont называется reloadData(), потому что вы добавляете определенное количество строк так призывающих reloadData() будет перезагрузить все данные, и это вызывает сбой

2) Вызов этого метода несколько раз в течение одних и тех же beginUpdates и endUpdates блок допускается, и изменения обрабатываются постепенно

3) Самое главное IndexSet должен находиться в пределах диапазона если вы Введите действительный IndexSet Затем numberOfRows в виде таблицы автоматически увеличивается на кол индексов.

4) вы можете выбрать анимацию в соответствии с вашими потребностями

Пример кода:

[yourTableView beginUpdates]; 
NSIndexSet* theIndexSet = [NSIndexSet indexSetWithIndex:[self.yourTableContents count]-1]; 
[yourTableView insertRowsAtIndexes:theIndexSet withAnimation:NSTableViewAnimationEffectFade]; 
[yourTableView endUpdates]; 
2

Код верный, но сначала вы должны вставить объект модели в массив источников данных, чтобы синхронизировать модель и просмотр.

+0

Я уже добавил модель объекта в исходном массиве данных. –

+0

Добавить или добавить? Порядок должен быть точно таким же. Какое сообщение об ошибке вы получаете? – vadian

+0

EXC_BAD_ACCESS ... но я проверяю индекс, который действителен (не более предела) –

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