2012-12-14 32 views
1

我的CLLocation对象位于不同的对象中,我的一个UI屏幕想要从该对象更新某些统计信息,是否可以使用KVO来观察这些更改,例如经度和纬度。是否可以使用KVO观察CLLocation对象?

+0

我不明白为什么这是封闭的。使用KVO是一种常用技术,当您有一个对象保持一个值并需要在多个位置通知变化时。看起来像一个合理的问题和使用KVO给我。 – progrmr

回答

2

基本上我不会依赖KVO与任何Cocoa对象或值,它没有明确记录的工作。即使它有效,你也不能依靠它继续这样做。

但是,CLLocationManager有一个委托(CLLocationManagerDelegate),所有的变更都被报告给它,所以你为什么不使用它?或者如果其他对象已经是委托人了,为什么不能安排它向对象发送消息,或至少发布通知?这听起来像任何其他基本对象通信问题。

+0

那么你有什么建议,我已经使用CLLocation管理器委托的主视图。我可以使用NSNotificaiton或创建我自己的KVO属性。 – mskw

+2

任何一个听起来都不错。 KVO具有明显的优势,即自动向观察者报告符合KVO的更改。但是我个人认为KVO管理很笨拙;而现在我们已经有了'addObserverForName:object:queue:usingBlock:',通知几乎是非常优雅的。但不要让我的个人偏见影响你! :) – matt