2012-03-07 142 views
1

我有一個調用Web服務的應用程序。它在模擬器中運行良好,但在設備上崩潰。當我第一次訪問Web服務時調試崩潰時。下面是我得到的信息:應用程序在設備上崩潰但不在模擬器中

3月7日15時58分52秒Justins-iPhone跳板[15]:我的應用程序未能及時推出

3月7日15時58分52秒Justins,iPhone跳板[15]:強制MyApp [112]的崩潰報告...

Mar 7 15:58:52 Justins-iPhone SpringBoard [15]:完成崩潰報告。 (UIKitApplication:My App [0xc356] [112]):(UIKitApplication:My App [0xc356])已退出:已殺死:9

03月07日15時58分52秒Justins-iPhone跳板[15]:殺:應用 '我的應用' 與異常信號9退出9

03月07日15時58分52秒Justins-iPhone ReportCrash [113] :保存的crashreport到/var/mobile/Library/Logs/CrashReporter/MyApp_2012-03-07-155852_Justins-iPhone.plist使用uid:0 gid:0,synthetic_euid:501 egid:0

任何幫助將不勝感激, 我不知道 發生了什麼。

回答

1

如果您在本FinishedLaunching服務在AppDelegate中調用,它需要比〜17秒時間越長,設備會殺了你的應用程序。

一般來說任何IO密集型任務,如Web服務應該被卸載到後臺線程:

_client = new ServiceClient(); 
_client.DoSomethingCompleted += Handle_DoSomethingCompleted; 
_client.DoSomethingAsync(); 

同樣是這些限制可能會或可能不會在模擬器執行。

+1

看來,最近版本的iOS模擬器不再強制執行此操作(很確定在早期的4.x版本中就是這種情況,但無法記得它何時發生變化)。 – poupou 2012-03-07 22:26:10

1

不要在主線程中執行阻塞任務,使用異步或新線程。問題在於,在第一個視圖呈現之前,您正在輪詢web服務。這會導致您的應用程序開始超時,ios會終止您的進程。

Mar 7 15:58:52 Justins-iPhone SpringBoard[15] : My App failed to launch in time

相關問題