2011-12-11 59 views
1

我有一個帶有4個選項卡的標籤欄應用程序,代碼中沒有任何壯觀的代碼。所有模擬器測試都很好,應用程序沒有崩潰,一切正常,Xcode(我使用Xcode 4.2和應用程序使用故事板)顯示沒有警告或錯誤。僅在iPhone上顯示內存泄漏

運行「分析」時,代碼中沒有泄漏,錯誤或潛在泄漏。

當運行'泄漏',沒有泄漏列出,我可以加載,重新加載,標籤之間交換等,一切都很好。

當我在iPhone上運行這個,但是,很多泄漏出現!

他們中的一些似乎是在全部發布並且看起來很好的代碼中,並且在Xcode中都可以很好地驗證。

爲什麼模擬器在手機上運行不同,以及如何查找和調試在模擬器上運行泄漏時不顯示的泄漏?

+1

您可以提供的信息越多越好。你的項目是否使用ARC?請粘貼檢測到的泄漏信息或截圖。 – occulus

+0

不知道如何附加一個截圖,所以已經上傳到這裏:[鏈接](http://www.coulldesign.com/screen.png) – Richard

回答

0

首先,通過將檢查範圍(使用左右範圍按鈕)限制在發生泄漏的區域,可以檢查更小的區域。然後,通過從左側的調用樹中選擇一些有用的檢查,例如僅顯示Obj-C,隱藏缺失符號等,然後您將從樂器中獲得更多有用的信息。之後,點擊與泄漏相關的其中一行,打開擴展視圖並開始檢查您的調用堆棧。此外,據我記得,雙擊一個泄漏線可以將您帶到泄漏對象分配的源代碼。這裏要小心,因爲它沒有顯示泄漏發生的位置,它顯示泄漏對象的分配位置。那麼,你應該關注這些對象發生的事情。

關於模擬器和設備的區別,你可以查看this SO的問題。

希望這些幫助!