带有Block的系统通知NSNotification

系统自带的NSNotification,我们要实现一个selector方法,这样用起来可能不太方便,而且个人感觉代码也没有用Block那么直观。

系统的用法

于是我就想着 给NSNotificationCenter添加一个分类,实现Block的NSNotification,最后用起来是这样子的。

自定义的用法

下面我再讲一下实现这个分类的思路

先增加一个观察者

添加了观察者之后,但是observer并没有NSNotificationCenterSEL_name这个方法,于是我就想到了利用runtime给observer动态添加一个NSNotificationCenterSEL_name方法。

第一个参数:需要添加方法的类名

第二个参数:需要添加的方法名

第三个参数:添加方法的实现

第四个参数:"v@:@"  v  方法的返回值是void  @ 表示self  : 表示SEL

这个"v@:@"的意思是

添加NSNotificationCenterSEL_name方法之后,我们这个方法里面实现什么呢,就是要实现我们的Block,添加观察者时传进来的。

这时我们就需要给observer绑定一个Block属性,同样是利用runtime

最后我们在NSNotificationCenterSEL_name方法里面调用Block就行了

最终的代码就是这样的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,768评论 0 9
  • 设计模式 1.delegate和notification什么区别,什么情况使用? 2.描述一下KVO和KVC。 K...
    丶逐渐阅读 1,977评论 3 2
  • 面试题参考1 : 面试题[http://www.cocoachina.com/ios/20150803/12872...
    江河_ios阅读 1,758评论 0 4
  • 1.form表单有什么作用?有哪些常用的input 标签,分别有什么作用? 作用:将表单包裹起来形成完整的数据。收...
    我七阅读 407评论 0 0
  • “下一个!林白!”一个身着淡粉色长袖护士服的中年妇女,拖着臃肿的身体,从B市第一人民医院精神科某位专家门诊的房间里...
    忘公子阅读 248评论 0 0