ipad / iphone应用程序EXC_BAD_ACCESS仅在模拟器中,而不在设备上

时间:2010-09-23 19:51:44

标签: iphone ipad exc-bad-access

我今天在客户端站点,然后在那里做了几个bug修复。我将应用程序的工作副本部署到他们的iPad和iPhone上。完善。我已经回家了,现在在模拟器中运行应用程序....但它每次都崩溃,我无法弄清楚如何。不幸的是,我看不出有什么改变会导致这种情况。

有谁知道为什么你会在模拟器上看到错误消息Program received signal: “EXC_BAD_ACCESS”而不是iPad或iPhone?

我在OSX 10.6.4上运行的iPhone 3GS和iPad 3.2.2上使用Xcode 3.2.4和OS4.1

感谢您提供任何信息。我正在撕扯我的头发....!

[更新]

这是代码失败的代码

- (void)dealloc
{
if (_node)
    {
    if (_node->_private == self) //THIS IS THE LINE that debug is stopping on
        _node->_private = NULL;
    _node = NULL;
    }
//
[super dealloc];
}

2 个答案:

答案 0 :(得分:1)

这个物体是否有可能被正确保留?模拟器内存​​可以非常快速地重用,因此如果指针的保留计数变为0,它将快速重新映射,并且在下一次访问时,事情可能会爆炸....在我的经验中重用内存在设备上较慢。根据对象的类型,您可以使用CFGetRetainCount或[_node-> _private retainCount] ;.如果物体仍然断裂则没有。

答案 1 :(得分:0)

奇怪地使用_node。从您使用 - >它似乎是一个指针。但是,然后将其设置为NULL。这是释放指针或删除对它的引用的一种非常奇怪的方式。

你是否在其他地方释放了_node?也许_node在被调用之前被释放了。当你尝试使用它时,这会给你一个问题。