如何查看和调试活动键值观察器

时间:2014-10-03 16:46:16

标签: ios xcode key-value key-value-observing dealloc

  1. 典型的故事......从一年前离开的编码器继承了一个有缺陷的应用程序。
  2. App使用一些时髦的过渡插件;即iCarousel,MPFFlipTransition。
  3. App弹出单独的浏览器标签。
  4. 关闭浏览器或浏览器标签时会引发错误
  5. 某个观察者正在泄露。
  6. 我已经将以下代码添加到相关课程中,没有运气:

    • (void)dealloc { //实现dealloc方法/删除 [[NSNotificationCenter defaultCenter] removeObserver:self]; }
  7. 如何跟踪应用以查找此观察者的设置位置?我可以观察特定的记忆位置吗?我可以以某种方式查看键/值对吗? Thx,Keith< 3

    抛出错误:

    2014-10-03 12:33:20.938 myApp[5299:60b] An instance 0x145661f0 of class DesktopBrowserVC was deallocated while key value observers were still registered with it. Observation info was leaked, and may even become mistakenly attached to some other object. Set a breakpoint on NSKVODeallocateBreak to stop here in the debugger. Here's the current observation info:
    <NSKeyValueObservationInfo 0x14547300> (
    <NSKeyValueObservance 0x14547210: Observer: 0x145550a0, Key path: title, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0, Property: 0x14547320>
    

1 个答案:

答案 0 :(得分:0)

您可以通过搜索项目( Cmd + Shift + F )轻松找到为该关键路径添加任何观察者的位置字符串forKeyPath:@"title"

您还可以通过调用以下方法随时调查观察者当前正在观察您的任何对象:

[NSObject observationInfo]

正如@AaronWojnowski所说,请确保您不会将键值观察者与NSNotificationCenter观察员混淆!