違反ios系統規則產生crash的三種型別:
(1) 記憶體報警閃退
當ios檢測到記憶體過低時,它的vm系統會發出低記憶體警告通知,嘗試**一些記憶體;如果情況沒有得到足夠的改善,ios會終止後台應用以**更多記憶體;最後,如果記憶體還是不足,那麼正在執行的應用可能會被終止掉。在debug模式下,可以主動將客戶端執行的動作邏輯寫入乙個log檔案中,這樣程式童鞋可以將記憶體預警的邏輯寫入該log檔案,當發生如下截圖中的記憶體報警時,就是提醒當前客戶端效能記憶體吃緊,可以通過instruments工具中的allocations 和 leaks模組庫來發現記憶體分配問題和記憶體洩漏問題。
(2) 響應超時12
3456
(3) 使用者強制退出
一看到「使用者強制退出」,首先可能想到的雙擊home鍵,然後關閉應用程式。不過這種場景一般是不會產生crash日誌的,因為雙擊home鍵後,所有的應用程式都處於後台狀態,而ios隨時都有可能關閉後台程序,當應用阻塞介面並停止響應時這種場景才會產生crash日誌。這裡指的「使用者強制退出」場景,是稍微比較複雜點的操作:先按住電源鍵,直到出現「滑動關機」的介面時,再按住home鍵,這時候當前應用程式會被終止掉,並且產生乙份相應事件的crash日誌。
應用邏輯的bug
大多數閃退崩潰日誌的產生都是因為應用中的bug,這種bug的錯誤種類有很多,比如:
IOS開發常見面試題
1.解釋一下oc中的執行時。1 runtime是什麼 runtime是一套比較底層的c語言api,屬於1個c語言庫,包含了很多底層的c語言api 平時編寫oc 在程式執行過程中,其實最終都轉換成了runtime的c語言 runtime是oc的幕後工作者。2 舉例 oc person alloc in...
常見面試題
1.get和post的區別 1 本質區別 get是向伺服器請求資料,post是向伺服器傳送資料。2 伺服器獲取值的方式 get方式提交的資料,伺服器端使用request.querystring獲取變數的值。post方式提交的資料,伺服器端使用request.form獲取資料。3 安全性 get安全效...
常見面試題
1 一行 實現1 100之和 lst i for i in range 1,101 print sum lst 2 如何在乙個函式內部修改全域性變數?在函式內部新增 global 變數名 這樣就可以在本地作用域定義全域性作用域了 name 大明 def eat name1 global name n...