帶有Block的系統(tǒng)通知NSNotification

系統(tǒng)自帶的NSNotification,我們要實(shí)現(xiàn)一個selector方法,這樣用起來可能不太方便,而且個人感覺代碼也沒有用Block那么直觀。

系統(tǒng)的用法

于是我就想著 給NSNotificationCenter添加一個分類,實(shí)現(xiàn)Block的NSNotification,最后用起來是這樣子的。

自定義的用法

下面我再講一下實(shí)現(xiàn)這個分類的思路

先增加一個觀察者

添加了觀察者之后,但是observer并沒有NSNotificationCenterSEL_name這個方法,于是我就想到了利用runtime給observer動態(tài)添加一個NSNotificationCenterSEL_name方法。

第一個參數(shù):需要添加方法的類名

第二個參數(shù):需要添加的方法名

第三個參數(shù):添加方法的實(shí)現(xiàn)

第四個參數(shù):"v@:@"? v? 方法的返回值是void? @ 表示self? : 表示SEL

這個"v@:@"的意思是

添加NSNotificationCenterSEL_name方法之后,我們這個方法里面實(shí)現(xiàn)什么呢,就是要實(shí)現(xiàn)我們的Block,添加觀察者時傳進(jìn)來的。

這時我們就需要給observer綁定一個Block屬性,同樣是利用runtime

最后我們在NSNotificationCenterSEL_name方法里面調(diào)用Block就行了

最終的代碼就是這樣的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 2,072評論 0 9
  • 設(shè)計(jì)模式 1.delegate和notification什么區(qū)別,什么情況使用? 2.描述一下KVO和KVC。 K...
    丶逐漸閱讀 2,031評論 3 2
  • 面試題參考1 : 面試題[http://www.cocoachina.com/ios/20150803/12872...
    江河_ios閱讀 1,817評論 0 4
  • 1.form表單有什么作用?有哪些常用的input 標(biāo)簽,分別有什么作用? 作用:將表單包裹起來形成完整的數(shù)據(jù)。收...
    我七閱讀 435評論 0 0
  • “下一個!林白!”一個身著淡粉色長袖護(hù)士服的中年婦女,拖著臃腫的身體,從B市第一人民醫(yī)院精神科某位專家門診的房間里...
    忘公子閱讀 297評論 0 0

友情鏈接更多精彩內(nèi)容