2010-09-23 80 views
0

我今天在客户端,并在那里做了一些错误修复。我将应用程序的工作副本部署到他们的iPad和iPhone上。完善。我回到家,现在在模拟器中运行应用程序....但它每次崩溃,我不知道如何。不幸的是,我看不到我改变了哪些会导致这种情况。ipad/iphone应用程序EXC_BAD_ACCESS只在模拟器中,不在设备上

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

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

感谢任何信息。我正在把我的头发撕掉....!

[更新]

这里的地方它的失败

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

你可能在最近一分钟的变化中改变了某些东西,这些变化并没有起作用。发布一些代码将有所帮助。此外,你是否已经通过使用断点来尝试找出问题? – MishieMoo 2010-09-23 19:59:58

+0

如果您从XCode调试器运行模拟器调试版本,调试器会显示错误/崩溃的位置? – hotpaw2 2010-09-23 20:33:05

+0

也可能想尝试启用NSZombie来查看正在发生的事情。 – 2010-09-23 20:34:54

回答

1

代码是否有任何机会,这个对象的心不是被正确地保留?模拟器的内存很快被重用,因此如果一个指针的保留计数变为0,它将很快重新映射,下一次访问可能会炸毁....在我的经验中,重复使用内存在设备上会变慢。根据对象的类型,可以使用CFGetRetainCount或[_node - > _ private retainCount] ;.如果对象仍然没有一个。

+0

这是一个与构建和模拟器的问题 - 也许模拟器内存​​不高兴!我删除了所有的版本,关闭了所有内容并重新启动。似乎已经解决了这个问题。很奇怪。 – 2010-09-28 21:16:22

0

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

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

相关问题