2014-10-28 91 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加載函數)。