在整个项目中,使用哪个更好地将数据从一个类流向另一个类?
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/