2017-06-17 22 views
1

以我iOS應用中,我使用的條件塊內的exit(-1)呼叫,即如果NSFetchedResultsController返回Yes作爲誤差的函數performFetch。這是框架代碼退出()函數調用不被識別爲碰撞在設備日誌

NSFetchedResultsController *resultsContoller; 
NSError *error; 

if (![resultsContoller performFetch:&error]) { 

    exit(-1); 
} 

初始化爲NSfetchedResultsController在我的代碼來完成。

所以,這是我的問題。由於exit()調用,此應用確實崩潰。但是當我看到我的iPhone設備通過XCode登錄時,沒有註冊崩潰報告。

  1. 通過編程調用exit()不視爲iOS的崩潰?
  2. 是否只有在設備日誌中註冊的exit()的意外呼叫?
+1

我想這可能是因爲exit()函數可能觸發應用程序的編程結束,而不是 「崩潰」本身。你有沒有嘗試調用fatalError()? –

回答

1

以編程方式調用exit()不被認爲是iOS中的崩潰?

應用程序調用exit將出現在用戶已經墜毀, 而不是執行正常終止和動畫回 主屏幕。

只有在設備日誌中註冊exit()的意外調用?

不,退出()不會在設備日誌中註冊,因爲它實際上是關閉應用程序不會崩潰。

如果在開發或測試過程中有必要終止您的 應用程序,建議使用中止函數或斷言宏。

一樣,NSAssert(FALSE, @"Quitting the app programmatically.");

檢查參考這裏:

https://developer.apple.com/library/content/qa/qa1561/_index.html