了解NSZombie消息

时间:2012-04-19 08:36:49

标签: objective-c xcode

我在xcode 4.2中启用了nszombie。 (来自product-> editScheme)

我收到了这条消息:

-[buttons respondsToSelector:]: message sent to deallocated instance 0x48ae50

我确实有按钮类,但我没看到这条消息的确切问题。

我能从NSZombie获得更多?

2 个答案:

答案 0 :(得分:2)

问题是按钮类型的对象被解除分配,然后调用 respondsToSelector:方法,该对象位于地址0x48ae50。

如果你在没有NSZombies的情况下运行,你的应用程序就会崩溃。

答案 1 :(得分:0)

此特定消息的含义是buttons实例(0x48ae50)已被解除分配(a.k.a。release d)。因此,通过尝试将respondsToSelector:消息发送到nothing(请记住实例已取消分配),它会抛出错误。

尝试在触发位置附近设置断点并查看原因...(目前,您的buttons对象最希望地址为0x0

在大多数(如果不是全部)情况下,这与一些错误的内存管理有关;一个对象被释放得太快,没有被保留,等等......; - )