2010-06-13 113 views
0

我刚升级到SDK 3.2。我的应用程序在调试模式下运行在Simulator 3.0中,但是当我将模拟器更改为使用3.2运行时,它与EXEC_BAD_ACCESS一起崩溃。在iPhone模拟器3.2中运行时应用程序崩溃(在模拟器3.0中正常运行)

它正在崩溃在objc_msgsend方法。

INT主(INT ARGC,CHAR *的argv []){

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 
int retVal = UIApplicationMain(argc, argv, nil, nil); <======== THE STACK TRACE starts here. 
[pool release]; 
return retVal; 

}

任何想法是怎么回事?我绝对不知道。任何帮助/建议将不胜感激?

感谢 一个

回答

0

很可能使用的是过时的代码。

你所显示的堆栈跟踪是主应用程序循环 - 这并没有什么帮助。你需要进一步观察堆栈。查找您编写的代码并查看可能存在的问题。

您可能会尝试使用不正确的格式化程序记录某些内容。例如:NSLog(@"%@", 55);(55是一个整数,而不是一个字符串)。也许你正试图修改一个不可变的对象。

请您张贴更多的堆栈(或整个东西),以便我们可以看到它吗?你写的代码也可以在这里帮助。

+0

这是我写的堆栈跟踪中唯一的东西。其他的一切都来自iphone库。在发生这种情况时,我的代码都不会被调用。我的理论: 苹果已经改变了垃圾收集器。一些消息是从一段代码发送来清理一个对象,但该对象已经被清除。这有意义吗?如果是的话如何检查呢? 谢谢 A – amitabh 2010-06-14 13:32:25

+0

iPhone开发中没有垃圾收集器。你需要释放东西。也许你是过度释放的东西。如果你想在这里发布你的源代码,你可以在“[email protected]”给我留下印象。使用'NSLog()'来找出代码崩溃的地方。 – Moshe 2010-06-14 13:58:50

相关问题