iphone - KVO vs NSNotification vs 协议(protocol)/代表?

标签 iphone ios protocols key-value-observing nsnotifications

我知道什么时候使用哪个,但我仍然不清楚确切的用法。有人可以举例说明吗?

最佳答案

如果您只想与一个对象对话,请使用委托(delegate)。例如,tableView 有一个委托(delegate) - 只有一个对象应该负责处理它。

如果您想告诉所有人发生了某事,请使用通知。例如,在内存不足的情况下,会发送一条通知,告诉您的应用程序存在内存警告。因为您应用中的许多对象可能想要降低它们的内存使用量,所以这是一个通知。

我认为 KVO 根本不是一个好主意,尽量不要使用它,但是,如果你想知道属性是否发生了变化,你可以监听变化。

希望对您有所帮助。

附言This sums up why I think KVO is broken

关于iphone - KVO vs NSNotification vs 协议(protocol)/代表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7864838/

相关文章:

ios - MonoTouch 中包含 500 个项目的 UITableView

ios - 从服务器下载文件时应用程序卡住

protocols - 是否可以找到所有实现特定协议(protocol)的模块?

python-3.x - Typing.Protocol 类 `__init__` 方法在显式子类型构造期间未调用

iphone - 如何循环遍历 nsfetchedresultscontroller

iphone - 如何以编程方式截取 iPhone 的屏幕截图?

ios - cocoa-touch中initWithCoder方法中的aDecoder有什么作用?

swift - 协议(protocol)方法和默认值

iphone - 主队列上的 dispatch_sync 和 executeFetchRequest 之间的死锁 :error:

iphone - 按钮中的 presentPopoverFromRect 超出范围