Ich habe eine Funktion, die mit dem Internet verbindet und dann aktualisiert die Zellen in der Tabelle.UITableView reloadData ist langsam
Meine Funktion ist:
- (void) updateMethod
{
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
queue.name = @"Data request queue";
[queue addOperationWithBlock:^{
//neither of these delay the responsiveness of the table
[columnArrayBackground removeAllObjects];
[self getColumnDataBackground];
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
for (int i=0; i < 6; i++) {
columnArray[i] = columnArrayBackground[i];
};
//THIS ONE LINE CAUSES DELAYS
[homeTable reloadData];
}];
}];
}
Alles superschnelle ist mit Ausnahme von [Homereload]. Wenn ich das kommentiere, habe ich eine schnelle Antwort. Wenn ich es auskommentiere, bleibt meine Zellantwort manchmal um einige Sekunden zurück!
Meine anderen reloadData-Aufrufe verzögern meine App nicht. Implementiere ich NSOperationQueue nicht korrekt?
Können Sie versuchen, nur die sichtbaren Zellen nachzuladen? Wenn Ihre Datenquelle aktualisiert wurde, bevor der Benutzer nach unten scrollt, ist sie möglicherweise schneller, z. B. [homeTable reloadRowsAtIndexPaths: [homeTable indexPathsForVisibleRows]] – Max
Zeigen Sie die Delegate-Methoden für Tabellenansichten an. Was macht 'getColumnDataBackground'? Woher weißt du, dass es eine "Verzögerung" verursacht? – Wain