是否在UI更新事件之前處理由NSNotificationCenter postNotificationName處理的事件?NSNotificationCenter通知的優先級高於UITableView單元加載事件嗎?
我需要知道,否則我的當前程序將在一些罕見的情況下崩潰。
型號代碼:
- (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];
}
當處理商品通知,我會跑的UITableView reloadData。
但是,考慮如果在處理通知之前,UI已被更新。在這種情況下,將調用-tableView:cellForRowAtIndexPath:indexPath,但結果對象已更改,它將提取舊數據。
我不認爲這是這種情況。如果你看一下上面的代碼,這就是NSNotificationCenter的一個完美例子--OP只是通知觀察者搜索結果已經到達,並且基於這個通知,他可以執行一些合法的東西,比如在搜索結果視圖中動畫,或者自動解散'模態加載'視圖等。代碼不顯示不正確的結果管理不正確否則。 – strange 2014-02-20 21:53:57