iphone - 从 NSInvocation 或 NSNotificationCentre 或 Delegate 方法中使用哪个更好

标签 iphone ios delegates nsnotificationcenter nsinvocation

在整个项目中,使用哪个更好地将数据从一个类流向另一个类?

NSInvocation

NSNotificationCentre

委托(delegate)方法

或者通过我不知道的任何其他方法??

最佳答案

它们之所以存在,是因为它们都服务于不同的目的。简而言之:

NS调用

发送到一个对象的抽象消息,带有可选参数,表示为一个对象。不经常使用,特别是自引入 block 以来。

也可以用作避免创建 NSOperation 子类的便捷方法(参见 NSIvocationOperation)。

NSNotificationCenter

向任意数量的未知“听众”广播消息。一对多。广播者不需要知道听众。包括用于补充信息的用户信息字典。最重量级/最慢的 - 不经常需要,但为了方便经常看到。

在许多情况下,委托(delegate)就足够了。

委托(delegate)方法

通常是一个抽象对象,通常采用特定协议(protocol)。一对一的关系。处理 Action 而不是子类化的常用方法。


or by any other methods i am unaware of ??

Blocks (^) 也可以用作回调/处理程序,并且通常用作 NSInvocations 的类型更安全的替代品。

关于iphone - 从 NSInvocation 或 NSNotificationCentre 或 Delegate 方法中使用哪个更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12257589/

相关文章:

android - flutter : How we can use inbuilt message app for send message using package?

ios - 取消UIScrollView拖动后弹跳

ios - 如何从一致的类中正确设置协议(protocol)中的属性?

iphone - 使UIImage符合NSCopying协议(protocol)

iphone - 自动释放池和内存管理

iphone - 如何在 UITableView 中为节标题的高度变化设置动画?

arrays - 字符串数组顺序错误

ios - 什么时候使用?、!、无或惰性?

ios - 为 Mac 构建 libunwind

c# - 委托(delegate)事件问题