各种通信方式的不同

看了一些大大们的讲解,总结下。

block:

  1. 注重结果

  2. blcok运行成本比较高,block出栈需要把,block内的数据从栈区复制到堆区,对象就是引用计数+1

  3. 一对一

  4. blcok出现循环引用时,在引用那一个环节MRC加上__weak,ARC__block.

delegate:

1.注重过程,比如发起一个网络请求,想知道请求是否开始,是否接受什么的,这个时候使用delegate比较合适。

2.delegate运行的成本比较低,delegate只是保存了一个指针对象,直接回调没有额外消耗。

3.一对一

4.在某一时间,只能有一个委托,连接到某一对象

5.可以在声明delegate的时候MRC用assign,ARC用weak。

通知:

一对多



你可能感兴趣的:(各种通信方式的不同)