目标C:对象释放,而关键值观察者仍然在其上注册

在将2个附加字段添加到我的核心数据模型后,我遇到了下面的错误。

CarPark_CarPark_ 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 0x1b6510> ( <NSKeyValueObservance 0x19b210: Observer: 0x1a8cf0, Key path: coordinate, Options: <New: NO, Old: NO, Prior: YES> Context: 0x0, Property: 0x1b7e00> ) 

下一步做什么我有点失落。 任何指导,将非常感激! 请让我知道还有哪些其他信息是必需的。

要设置断点,请在Xcode 4(Xcode 3中的断点窗口)中打开断点选项卡,并为符号“NSKVODeallocateBreak”添加一个新的符号断点

使用debugging器控制台在观察信息中给出的地址打印观察者

观察者:0x19af20

 po 0x19af20 

这应该给观察者一些有价值的信息。 在您的自定义CarPark类中覆盖addObserver:forKeyPath:options:context:并设置一个断点以查看正在build立的观察的确切位置。

这可能是由于观察者在观察对象之前被释放。 您将需要实现– (void)dealloc方法来删除观察者中的所有观察对象。