Werden Ereignisse, die von NSNotificationCenter postNotificationName veröffentlicht werden, vor UI-Aktualisierungsereignissen verarbeitet?
Ich muss das wissen, weil mein aktuelles Programm sonst in einigen seltenen Fällen abstürzt.
Modell-Code:
- (void)searchFinishedWithResults:(Results *)results {
self.results = results;
// If some table cells are loaded NOW, before notication is processed, we might crash!
[[NSNotificationCenter defaultCenter]
postNotificationName:SearchResultArrived object:nil];
}
Bei der Verarbeitung der Meldung werde ich UITableView reloadData ausführen.
Bedenken Sie jedoch, dass die Benutzeroberfläche vor der Bearbeitung der Meldung aktualisiert werden muss. In diesem Fall wird -tableView:cellForRowAtIndexPath:indexPath aufgerufen, aber das Ergebnisobjekt hat sich geändert, es werden alte Daten abgerufen.