2011-06-14 64 views

回答

0

有java和C#背景的開發者肯定會去iOS中的異常處理。蘋果有一些非常好的API來解決已知的錯誤,但該程序應該是免費的(我知道這很困難)。 Sigabrt通常發生在你釋放一個對象的時候,而SIGKILL通常在系統因缺少內存而殺死你的應用程序時發生。所以,我建議你閱讀the memory management guide by apple。此外,您可以通過this linkthis.。蘋果有一個類定義爲exception handling - NSException

也試圖提高您的接受率。

祝你好運。

+0

當用戶更改OS範圍的隱私設置時,由操作系統發出SIGKILL。內存管理無法避免這種情況。我想知道是否有人找到了一個可以接受的方式從這個優雅恢復。在我自己的情況下,應用程序被凍結,需要從任務管理器進行硬重置! – sirvine 2013-08-10 03:32:04

+0

爲了澄清我上面的評論 - 看起來應用程序只在從Xcode運行時才被凍結。如果我從Xcode取消它,我會得到一個可接受的優雅重啓行爲。 – sirvine 2013-08-10 03:39:15

2

您可以通過在應用程序委託中註冊NSUncaughtExceptionHandler來捕獲大部分未處理的異常。

同樣可以陷阱最使用sigactionsignal

正如你可以在兩個以上的鏈接見的信號的,就不能趕上型SIGKILL和SIGSTOP的信號。

請嘗試分析您的代碼,以找出導致這些信號的任何可能的原因。

+0

鏈接已損壞。 – bejado 2017-06-15 18:34:44