话不多,今天就是心血来潮来写一点东西,就写通知设计模式实现的猜想吧!在此之前没看过什么网上的各种大牛的博文,如有雷同万分荣幸!另外,也不知道知道通知设计模式实现原理是什么,只是这有办法实现相同的功能!还是一如既往分析代码吧!
1.@property (class, readonly, strong) NSNotificationCenter *defaultCenter;
2.- (void)postNotificationName:(NSNotificationName)aName object:(nullable id)anObject;
3.- (void)addObserver:(id)observer selector:(SEL)aSelector name:(nullable NSNotificationName)aName object:(nullable id)anObject;
4.- (void)removeObserver:(id)observer;
上面是 iOS的API,1 ->单例设计模式,上边说过的,这里就不赘述了;2->的参数NSNotificationName 值得一说,是为了让多个 同志共存 ;3->先说参数吧 observer 的存在是为了执行 aSelector, aName是为了查找 是否注册了通知 ;4-> 这个好像也没什么好说的!上面解释了这些东西存在的意义,那么下面的谈谈实现吧!我的思路是这样的,运用Runtime通过observer 对象从方法列表中找的aSelector 的 IMP 并且执行!
其实,就是想明白怎么处理的,对自己是非常有帮助的,不论是对API的理解,还是以后代码的设计!
若有不对的地方,敬请指点和指指点点!要是觉得还可以的话,请点赞收藏!