2015-03-13 45 views
0

我使用NSAssert來檢測我的代碼中不可恢復的條件。我在發佈模式中啓用了斷言,因爲如果斷言在我的代碼中失敗,它肯定是不可恢復的。引發NSInternalInconsistencyException保證默認崩潰?

NSAssert引發NSInternalInconsistencyException我讀過一些關於NSInternalInconsistencyException的衝突帖子,它被某些框架捕獲,因此不會崩潰應用程序。它是否正確?我希望我的應用程序在任何時候崩潰NSAssert失敗。

如果拋出後臺線程(如從調度隊列中),它也會崩潰嗎?

回答

0

這是我的理解(支持經驗),沒有例外保證會導致崩潰。系統經常捕捉它們。

+0

那麼,如何以編程方式按需iOS應用程序? – Monstieur 2015-03-13 14:32:13

+0

我創建一個塊局部變量,不要將它初始化爲任何東西,然後調用它。 – 2015-03-13 14:41:23

+0

請注意,Apple對自己崩潰的應用程序視而不見,並且可能會拒絕您。您應該向用戶顯示關於該問題的消息,而不是崩潰/退出。 – 2015-03-13 14:42:11