2012-12-03 48 views
1

我正在開發一個iOS應用程序並測試其穩定性。當我使用XCode Analyze進行檢查時,沒有內存泄漏問題。我在我的iPhone 5和iPad 2上進行了模擬,並嘗試單擊按鈕並儘可能快地翻轉UIScrollView什麼可能導致iOS應用程序意外退出?

調試日誌確實多次顯示「收​​到的內存警告」消息,但仍然沒有關於內存泄漏的消息。我一直在做瘋狂的測試,應用程序意外退出。當我雙擊「home」按鈕時,仍然可以在後臺找到應用程序。點擊迴應用程序後,它仍然可以正常運行。

因此,在這裏我想知道有什麼可能的原因會導致應用程序意外退出。如何使用任何工具或策略來追蹤應用程序退出的原因?

PS:我是一個新的iOS開發人員,對這個問題我真的沒有想法。我需要一些幫助。謝謝!

+0

您是否使用儀器進行了測試?這是Apple提供的調試工具。 – Josiah

回答

4

泄漏內存 - 這是你分配的內存,你不能回饋給系統,因爲你失去了指向內存的指針,你不能釋放它。然後使用內存很差 - 這是分配內存的地方。它不是「泄漏」的,因爲你可以放棄它,但是你不會放棄它。

考慮創建100個圖像的示例。

如果您創建100個圖像視圖,即使它們不是全部可見,但仍保留對圖像視圖的引用,那麼您沒有泄漏,但是您沒有正確管理您的內存。

靜態分析器可以幫助您發現泄漏 - 它不會告訴您您在哪裏使用內存不好。

嘗試在儀器下使用分配工具運行您的應用程序,以查看所有內存正在創建和使用的位置。

+0

謝謝。我會嘗試使用分配工具跟蹤儀器。順便說一句,什麼是適當的內存分配爲您的100圖像視圖情況? – fmchan

+0

這種情況下的正確方法是在不再顯示圖像視圖時釋放圖像視圖。 – Abizern

+0

謝謝Abizern。將UIImageView對象添加到當前視圖(如果使用ARC)後,將UIImageView的對象設置爲零是否正確?我想知道內存是否可以精確地縮小到之前的內存大小。例如,初始化,對象創建和對象破壞的內存使用情況是1mb,1.5mb還是1mb? – fmchan

0

很多原因會導致iOS應用程序突然退出。例如,您已經更新了iPhone固件,但該應用程序仍然是舊版本,那麼它們將不兼容。 或者您同時打開了太多應用程序,並且應用程序彼此分心。 另一個常見的情況是,你已經越獄你的iPhone,並在你的iPhone上安裝未經授權的應用程序。 點擊此處查看:http://iphone-6-data-recovery.blogspot.tw/2014/09/troubleshooting-iphone-app-quit-suddenly.html

相關問題