Квалифицированный идентификатор encodedjs.ReadEncodedJS
просто обозначает функцию, если используется как есть, это просто значение функции (например, может быть назначено переменным одного и того же типа функции).
Если вы хотите вызвать его и использовать возвращаемое значение, используйте скобки, например, encodedjs.ReadEncodedJS()
. Это подробно описано в Spec: Calls .
Поскольку вы хотите объединить string
значения, вы должны вызвать его:
js := "some text to simply show one way I've tried" + encodedjs.ReadEncodedJS()
К вашему сведению: Эта ошибка, кажется, была исправлена полностью с 2,2 обновлениями iPhone. Спасибо Apple! Nick.
В коде Вы отправили, Ваши индексные выполнения цикла от 0 до 4, который предполагает, что удалил бы все строки в разделе 1 и затем добавил бы пять новых строк для разделения 2. Так как каждый раздел уже имеет строку 0, это добавило бы второй экземпляр раздела 2, строка 0 к таблице.
Я предложил бы выполнить Ваш цикл от 1 до 4:
for (int i=1; i<5; i++)
{
// ...
}
Я, кажется, помню что numberOfRowsInSection: будет назван, когда Вы называете deleteRows или insertRow, необходимо быть действительно осторожными, что действительность numberOfRowsInSection cliams соответствует изменениям. В этом случае можно хотеть попытаться переместить iSelectedSection = [indexPath раздел]; строка к после endUpdates.
Я не помню, где я считал это, но я полагаю, что Вы не должны выполнять обновления строки таблицы (вставки и удаления) из одного из делегата табличного представления функции. Я думаю, что лучшая альтернатива должна была бы сделать, проводящий 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
}
Пытался заставить это работать. Вот мой код для добавления строки в мой 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];