2014-10-28 50 views
0

当我在iOS6或iOS7设备上运行我的应用程序时,它崩溃,但它不在iOS 5.1.1上这样做。当应用程序运行崩溃,主函数未调用

int main(int argc, char * argv[]) 
{ 
    @autoreleasepool { 
     NSLog(@"----main----"); // This is not run! 
     return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 
    } 
} 

而在模拟器中它运行正常。

清理项目并重新安装应用程序没有帮助。

日志低于:

XXXX_test_ios(243) malloc: recording malloc stacks to disk using standard recorder 
XXXX_test_ios(243) malloc: stack logs being written into /private/var/mobile/Applications/2E60A0A0-AA10-4CD6-AB74-85901B5D9D53/tmp/stack-logs.243.XXXX_test_ios.index 
XXXX_test_ios(243) malloc: Please issue: cp /private/var/mobile/Applications/2E60A0A0-AA10-4CD6-AB74-85901B5D9D53/tmp/stack-logs.243.XXXX_test_ios.i4TU9E.link /tmp/ 
2014-10-28 10:58:31.529 ktplay_sdk_test_ios[243:907] *** -[CFString release]: message sent to deallocated instance 0x1cd78950 

任何人都可以给我一些意见,我该怎么办?

+1

你过度释放一个字符串。检查所有的分配和释放,并确保它们匹配。在乐器应用程序中使用“僵尸”乐器可能会帮助您找到两次释放的字符串。 – user1118321 2014-10-28 03:22:36

+0

@ user1118321但主要功能不是调用。这意味着我的所有代码都没有被调用 – qiushuitian 2014-10-28 03:35:11

+0

主函数已被调用 - 它通常会在调试器中显示main()作为异常的结果。在断点导航器中设置一个异常断点 – Paulw11 2014-10-28 04:39:52

回答

0

在我的应用程序中有一些golbal对象,我没有注意到它。在运行良好的全局对象中重新使用NSString的双重版本。

很多这样做会在主函数调用之前完成。如全局变量,静态变量等。并且一些系统函数会调用(objective-c加载函数)。

相关问题