Да, как другие сказали, пустой массив поднимает несколько байтов для объектного заголовка и поля длины.
, Но если Вы волнуетесь по поводу производительности, что фокусируетесь на неправильном ответвлении выполнения в этом методе. Я был бы намного более обеспокоен запрос ToArray к заполненному списку, который приведет к выделению памяти, равному его внутреннему размеру и копии памяти содержания списка в него.
, Если Вы действительно хотите улучшить производительность тогда (если возможный) возвращают список непосредственно, заставляя возврат ввести один из: List<T>, IList<T>, ICollection<T>, IEnumerable<T>
в зависимости от того, в каких средствах Вы нуждаетесь от него (отмечают, что менее конкретный лучше в общем случае).
Если вы заполняете свою таблицу из массива, вы можете просто добавить элемент в свой массив и вызвать [myTable reloadData]
Когда я добавляю строку динамически, я использую 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];
}
данные перезагрузки просты и приятны, но, насколько я могу судить, не анимируются ...