首页 > 多播代理和通知的优缺点

多播代理和通知的优缺点

为什么我们使用多播代理而不使用通知呢?
多播代理的具体应用场景有哪些?
求大神指导


好问题。
1、我了解到的解释是:通知会造成干扰,比如你要下载A、B、C三个图片,A下载完了,发出通知,B和C图片的等待通知的地方也会收到,但其实它们不需要。

我感觉这个问题是可以被处理的,只要给每个任务加上对应的标识就好了,比如上面的下载图片情况,通知名设为“loadImage_”+url的最后一节 就可以了。而且通知可以指定发送者

- (void)addObserver:(id)observer selector:(SEL)aSelector name:(nullable NSString *)aName object:(nullable id)anObject;

最后一个参数就是指定发送者

2、我觉得随便用,都可以。只是用代理有点好处:委托的方法名是已经定义好的,在接口定义上明确,你知道要传什么参数,对于合作开发或者造轮子都会更好。通知一般就是靠userinfo来传参数,这是一个无指定类型的字典,不确定里面的数据结构,不是很明确。

3、其实我觉得最好的还是用block或闭包。

var name:string = "xxx"
downloadImageWithCompleteHander:{
    //回调后的逻辑可以直接写在这里
    //可以直接使用这个临时变量name,因为block的copy性质
}

而委托你还要去在另写一个方法,特别是有些参数需要传递,用delegate就得把那些临时变量页也给搞成成员变量了,否则无法跨越方法使用

【热门文章】
【热门文章】