雖然iOS 5.0版本之後加入了arc(自動引用計數)機制,但是有時還是會有內存洩露。
這裡介紹如何使用xcode配合instruments分析iOS內存洩露。
工具/原料
xcode
instruments
方法/步驟
用xcode打開自己的工程,按快捷鍵command+r 運行需要測試的程序。
點擊xcode導航欄的“show the debug navigator”,切換到debug模式
然後選中“Memory”,再點擊右側的 “Profile in Instruments”,會自動打開Instruments。
這時候會彈出來一個對話框,選擇“Transfer”
打開後,這時界面如圖:
然後切換到iOS模擬器,點擊那個測試按鈕
這個時候會彈出一個對話框,
“cancel”取消對話框後,多點幾次“button”,切換到Instruments會發現 “Leaks”一欄裡有幾個紅色的區塊。
這就是內存洩露了。
點擊暫停,
然後點擊“Leaks”一欄
然後點擊“導航欄”切換到“call tree”模式下
看到列表裡列出了內存洩露的調用邏輯:
勾選右邊的詳細窗口中的“hide system libraries”,隱藏系統函數。
這個時候就可以清楚看到我們自己程序中的方法調用層次結構了。
展開後,可以發現是[ViewController onTestLeakBtn].
鼠標雙擊“[ViewController onTestLeakBtn ]”這一行,會跳轉到代碼。
剩下的工作就是修改代碼,然後重複以上步驟。直到沒有內存洩露為止。