Добавьте строку динамично в TableView iPhone

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

, Но если Вы волнуетесь по поводу производительности, что фокусируетесь на неправильном ответвлении выполнения в этом методе. Я был бы намного более обеспокоен запрос ToArray к заполненному списку, который приведет к выделению памяти, равному его внутреннему размеру и копии памяти содержания списка в него.

, Если Вы действительно хотите улучшить производительность тогда (если возможный) возвращают список непосредственно, заставляя возврат ввести один из: List<T>, IList<T>, ICollection<T>, IEnumerable<T> в зависимости от того, в каких средствах Вы нуждаетесь от него (отмечают, что менее конкретный лучше в общем случае).

6
задан JohnoBoy 27 December 2011 в 08:48
поделиться

3 ответа

Если вы заполняете свою таблицу из массива, вы можете просто добавить элемент в свой массив и вызвать [myTable reloadData]

2
ответ дан 8 December 2019 в 14:44
поделиться

Когда я добавляю строку динамически, я использую insertRowsAtIndexPaths: вот пример функции

- (void) allServersFound {
    // called from delegate when bonjourservices has listings of machines:
    bonjourMachines = [bonjourService foundServers]; // NSArray of machine names;

    NSMutableArray *tempArray = [[NSMutableArray alloc] init];

    int i = 0;
    for (NSArray *count in bonjourMachines) {
        [tempArray addObject:[NSIndexPath indexPathForRow:i++ inSection:0]];
    }

    [[self tableView] beginUpdates];
    [[self tableView] insertRowsAtIndexPaths:(NSArray *)tempArray withRowAnimation:UITableViewRowAnimationNone];
    [[self tableView] endUpdates];

    [tempArray release];
}
13
ответ дан 8 December 2019 в 14:44
поделиться

данные перезагрузки просты и приятны, но, насколько я могу судить, не анимируются ...

1
ответ дан 8 December 2019 в 14:44
поделиться
Другие вопросы по тегам:

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