Podczas korzystania z - (void)beginUpdates
i - (void)endUpdates
na UITableView trzeba dokonać zmian w źródle danych w rozmowach?UITableView rozpoczęcia/zakończenia aktualizacji
tj
Jeśli mam NSMutableArray
nazywa dataSource
jazdy mój tableView
mogę to zrobić ...
// edit the actual data first
[dataSource addObject:@"Blah"];
// now update the table
[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:dataSource.count - 1 inSection:0] withRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView endUpdates];
czy jest to konieczne, aby zrobić ...
[self.tableView beginUpdates];
[dataSource addObject:@"Blah"];
[self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:dataSource.count - 1 inSection:0] withRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView endUpdates];
Tylko pytając, ponieważ mam kilka miejsc, w których aktualizuję i mogłem potencjalnie przenieść wspólny kod do funkcji.
Ale tylko wtedy, gdy mogę aktualizować poza wywołaniami aktualizacji.
gdzie powinienem dodać te linie kodu- w viewdidload? lub cellforrowatindexpath? lub jakiejkolwiek innej metody? –
Jest to bardzo ważne "musisz upewnić się, że aktualizujesz źródło danych w tym samym wątku" – Siyavash
@Siyavash, w jaki sposób mogę to zrobić? Mam kilku delegatów aktualizujących źródło danych, jak upewnić się, że im aktualizuję je w tym samym wątku. – titan