Вставка и удаление UITableViewCell одновременно не работа

Квалифицированный идентификатор encodedjs.ReadEncodedJS просто обозначает функцию, если используется как есть, это просто значение функции (например, может быть назначено переменным одного и того же типа функции).

Если вы хотите вызвать его и использовать возвращаемое значение, используйте скобки, например, encodedjs.ReadEncodedJS(). Это подробно описано в Spec: Calls .

Поскольку вы хотите объединить string значения, вы должны вызвать его:

js := "some text to simply show one way I've tried" + encodedjs.ReadEncodedJS()

7
задан Chris Hanson 2 December 2008 в 06:18
поделиться

5 ответов

К вашему сведению: Эта ошибка, кажется, была исправлена полностью с 2,2 обновлениями iPhone. Спасибо Apple! Nick.

0
ответ дан 7 December 2019 в 05:32
поделиться

В коде Вы отправили, Ваши индексные выполнения цикла от 0 до 4, который предполагает, что удалил бы все строки в разделе 1 и затем добавил бы пять новых строк для разделения 2. Так как каждый раздел уже имеет строку 0, это добавило бы второй экземпляр раздела 2, строка 0 к таблице.

Я предложил бы выполнить Ваш цикл от 1 до 4:

for (int i=1; i<5; i++)
{
    // ...
}
0
ответ дан 7 December 2019 в 05:32
поделиться

Я, кажется, помню что numberOfRowsInSection: будет назван, когда Вы называете deleteRows или insertRow, необходимо быть действительно осторожными, что действительность numberOfRowsInSection cliams соответствует изменениям. В этом случае можно хотеть попытаться переместить iSelectedSection = [indexPath раздел]; строка к после endUpdates.

1
ответ дан 7 December 2019 в 05:32
поделиться

Я не помню, где я считал это, но я полагаю, что Вы не должны выполнять обновления строки таблицы (вставки и удаления) из одного из делегата табличного представления функции. Я думаю, что лучшая альтернатива должна была бы сделать, проводящий performSelectorOnMainThread необходимой информации должен был выполнить обновления как объект. Что-то как:

- (void)tableView:(UITableView *)tableView 
  didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // ....
    [self performSelectorOnMainThread: @selector(insertRows:)
                           withObject: someObjectOrNil]; // double check args
}

- (void) insertRows: (NSObject*)someObjectOrNil {
    [tableView beginUpdates];
    // update logic
    [tableView endUpdates];

    // don't call reloadData here, but ensure that data returned from the 
    // table view delegate functions are in sync
}
1
ответ дан 7 December 2019 в 05:32
поделиться

Пытался заставить это работать. Вот мой код для добавления строки в мой tableView:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[tableView beginUpdates];
[dataSource insertObject:[artistField text] atIndex:0];
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationTop];
[tableView endUpdates];
6
ответ дан 7 December 2019 в 05:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: