您的位置:首页 > 其它

对象之间的调用机制 通信方式

2015-10-18 16:51 260 查看
1.直接方法调用

2.Target-Action @selector()

3.Delegate 协议

4.block(回调)

5.KVO

6.通知(NSNotification)

确定使用方式

1.判断通信对象是一对一的还是一对多的(一般一对一的是1,2,5,一对多是3,4,6)

2.对象之间的耦合度,是强耦合还是松耦合(尽量让所有模块解耦,遵循高内聚低耦合)

Objective-C中的通知由于其广播性及松耦合性,非常适合于大的范围内对象之间的通信(模块与模块,或一些框架层级)。通知使用起来非常方便,也正因为如此,所以容易导致滥用。所以在使用前还是需要多想想,是否有更好的方法来实现我们所需要的对象间通信。毕竟,通知机制会在一定程度上会影响到程序的性能

通知机制在一定程度上比较消耗性能

建议:

1.在需要的时候,需要的地方使用通知,跨度比较大的对象间交流

2.注册观察者和移除观察者在同一个地方要成对出现,只要注册一定要记得移除

3.尽可能迟的去注册一个观察者,并尽可能早的将其移除,因为,每post一个通知都会是遍历通知中心的分发表,确保通知分发给每一个观察者。

4.通知的post和add oberserve是在同一个线程中

5.使用addObserverForName:object:queue:usingBlock:方法时候,防止循环引用

6.NSNotification是线程安全的,但是还是不要在多线程编程的时候忽略它的线程问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: