IOS注意之NSNotificationCenter

Notification

蘋果提供通知方式來解除2個模塊的耦合。

提供了

1.註冊觀察者的方法

2.發送通知的方法

3.移除觀察者的方法

這裏需要注意的是多線程的影響。

通常直接寫代碼,addObserver或者postNotification,這些都是在UI線程運行的,並且post notification、deliver notification、progress notification過程是同步的,都是在同一個線程完成的。

這時候,如果你想提升性能,那非UI操作就不要在main線程發通知了,在其他線程發送通知,分發處理通知的過程都和post通知的線程是一樣的;通常,你可以在後臺線程發送通知,分發通知,處理通知,而處理通知時的UI操作可以在main線程完成。

另外,發送異步消息請見NotificationQueue.


ps:

有個疑問,我記得java中在非UI線程更新UI是會報錯的。而IOS中,新建NSThread,在此線程更新UI是沒錯的,並且更新沒有延遲,立即刷新;使用GCD則更新UI有延遲。還請明白的同學們下面回覆下,我也稍後在看看。

發佈了63 篇原創文章 · 獲贊 1 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章