【问题标题】:Objective-C Key-Value ObservingObjective-C 键值观察
【发布时间】:2010-03-18 06:53:00
【问题描述】:
[sessionController.currentSession addObserver:self
                            forKeyPath:@"sessionState"
                               options:(NSKeyValueChangeSetting)
                               context:NULL];

这似乎不起作用。

这段代码所在的类知道 sessionController 并且可以访问 currentSession。 currentSession 的 sessionState 变量是我要观察的。 verboten 是否按照我在这里所做的方式设置要观察的对象?

如果是这样,有什么方法可以做到吗?没有给观察对象一个 currentSession 变量。

【问题讨论】:

  • 你自己实现了observeValueForKeyPath:ofObject:change:context:,对吗?你确保它永远不会被调用?
  • 还有currentSession的类型是什么?
  • 是的,observeValueForKeyPath:ofObject:change:context: 是在 self 中实现的,并且正在为其他东西工作。它根本没有被调用 - 即使在切换之外 - 为此。它应该被要求做其他事情。当前会话是 NSManagedObject 的子类,我有实际的 .h 和 .m 文件。
  • sessionState在当前会话子类中实现了@property@dynamic?
  • 别抱歉!感谢所有的问题。我真的很感激。

标签: iphone cocoa-touch key-value-observing


【解决方案1】:

调用方法时 sessionController.currentSession 是否包含有效值?

这是一个常见的陷阱,向 null 发送消息会静默失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 2012-08-25
    相关资源
    最近更新 更多