NSNotificationCenter 与委派(使用协议)?

NSNotificationCenter vs delegation( using protocols )?(NSNotificationCenter 与委派(使用协议)?)
本文介绍了NSNotificationCenter 与委派(使用协议)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

它们各自的优缺点是什么?
我应该具体在哪里使用它们?

What are the pros and cons of each of them?
Where should I use them specifically?

推荐答案

这里的经验法则是有多少客户希望收到事件通知.如果它主要是一个对象(例如,关闭视图或对单击的按钮进行操作,或对下载失败做出反应),那么您应该使用委托模型.

The rule of thumb here is how many clients would like to be notified of an event. If it's mainly one object (e.g. to dismiss a view or to act upon a button clicked, or to react to a failed download) then you should use the delegate model.

如果您发出的事件可能同时对许多对象感兴趣(例如屏幕旋转、内存使用、用户登录/注销),那么您应该使用 NSNotificationCenter.

If the event you emit may be of an interest to many objects at once (e.g. screen rotated, memory usage, user login/logout), then you should use the NSNotificationCenter.

这篇关于NSNotificationCenter 与委派(使用协议)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Pushing UIViewController above UITabBar(将UIView控制器推送到UITabBar上方)
How to stop UIBarButtonItem text from truncating?(如何阻止UIBarButtonItem文本被截断?)
java.lang.IllegalStateException: SimpleTypeImpl should not be created for error type(异常:不应为错误类型创建SimpleTypeImpl)
Android IllegalArgumentException: The tag for fragment_XXX is invalid. Received: layout-sw600dp/fragment_XXX_0(Android IlLegalArgumentException:Fragment_XXX的标签无效。收到:Layout-sw600dp/Fragment_XXX_0)
iOS convert audio sample rate from 16 kHz to 8 kHz(IOS将音频采样率从16 kHz转换为8 kHz)
Enforcing an audio sampling rate in iOS(在iOS中强制音频采样率)