對於通知,大家想必都不陌生,它是乙個單例,允許當事件發生時通知一些物件,讓我們在低程度耦合的情況下,來達到通訊的目的。
通知的優勢:
1.不需要編寫太多**,實現比較簡單
2.對於乙個發出的通知,可以多個物件作出反應,即是說通知是一對多的形式
通知的缺點:
1.在編譯期不會檢查通知是否能夠被觀察者正確處理
2.在釋放註冊的物件時,需要在通知中心取消註冊
3.在除錯應用時,難以跟蹤程式
4.發出通知後,不能夠從觀察者那裡獲取任何反饋資訊
通知的基本實現:
- (void)viewdidload注意列印結果:在test方法執行完畢之後,才會列印傳送完成的log。2017-06-13 16:53:10.334 通知的基本使用[24531:3283934] 接收到通知 -
2017-06-13 16:53:13.335 通知的基本使用[24531:3283934] 傳送通知完成 -
如果在子執行緒傳送通知:
- (void)viewdidload2017-06-13 17:05:02.423 通知的基本使用[25191:3296125] 接收到通知 -
2017-06-13 17:05:05.523 通知的基本使用[25191:3296125] 傳送通知完成 -
得出結論:接收通知的執行緒和傳送通知的執行緒是一樣的,如果在實際開發過程中,我們是在子執行緒中傳送通知的,在接收到通知之後,需要重新整理ui等操作,一定要回到主線程。
- (void)viewdidload2017-06-13 18:21:41.368 通知的基本使用[29365:3382100] 傳送通知完成 -
得出結論:使用nsoperationqueue
可以讓接收通知的執行緒和傳送通知的執行緒不一樣,讓接收通知的執行緒在主線程,就可以重新整理ui等操作了。
- (void)touchesbegan:(nsset*)touches withevent:(uievent *)event else else else documentattributes:nil error:nil];self.contentlabel.attributedtext = attributestr;
ps:如果要改變文字的字型大小顏色等,一定要在這後面改
2.直接使用uiwebview去載入
[self.contentwebview loadhtmlstring:html_content baseurl:nil];
IOS常見問題整理
nsallowsarbitraryloads 2 ios應用啟動時不佔滿全屏,上下有黑邊 原因是沒有retina4對應的啟動,解決方法很簡單,就是把retina4對應的給補上就只可以了 設定 launch images source 集 ios 8以前啟動頁用,8以後的用xib檔案 3 html i...
dedecms一些常見問題
1 list和arclist的區別 首頁的列表呼叫,以及其它內頁的側邊欄,這些地方都可以使用arclist標籤,並且還可以根據typeid id 來指定呼叫哪個欄目下的列表 list 標籤還有乙個不同處就是分頁,我們知道在 製作中分頁功能是 欄目列表頁必不可少的乙個功能,而這個功能用arclist標...
Redis一些常見問題
1.多個系統同時併發競爭乙個key zookeeper分布式鎖 儲存到mysql的時候帶有時間戳 這樣redis裡面存的也有時間戳了 2.redis執行緒模型 核心操作模組 如網路請求模組 由單執行緒完成,當然另外還有一些 輔助線程 從旁協助,比如 lru 的淘汰過程。為什麼之前網路請求模組為什麼沒...