美文网首页iOS技巧
带有Block的系统通知NSNotification

带有Block的系统通知NSNotification

作者: iOS开发之FFmpeg | 来源:发表于2017-03-28 20:33 被阅读0次

系统自带的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就行了

最终的代码就是这样的

相关文章

网友评论

    本文标题:带有Block的系统通知NSNotification

    本文链接:https://www.haomeiwen.com/subject/zxlsottx.html