ios中kvo能观察多个对象吗

 我来答
策马在天山
2016-04-25 · 爱生活,爱分享,爱旅行!
策马在天山
采纳数:4 获赞数:69

向TA提问 私信TA
展开全部
KVO可以观察多个对象。

观察者模式主要是,通过一个对象来管理所有依赖于它的观察者对象,并在它自身的状态改变时主动通知观察者对象。 目标对象通知观察者通常是通过调用各观察对象所提供的接口方法来实现的.观察者模式比较完美的将目标对象与观察者对象解耦.

KVO 的应用场景:

当一个对象的特定属性改变的时候,需要被通知一个或者多个对象的时候。

KVO 的使用流程:

当一个观察者需要观察多个对象的同一个keyPath时,可以通过设置context来区分不同的通知。

注册与解除注册

keyPath不可以为nil
- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(nullable void *)context;
- (void)removeObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath;

设置Value

[target setAge:30]; //setter
[target setValue:[NSNumber numberWithInt:30] forKey:@"age"]; //setValue:forKey

处理变更通知

观察者需要实现名为 NSKeyValueObserving 的 category 方法来处理收到的变更通知

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式