我對包含文本字段的視圖控制器存在一些內存問題。使用UITextField釋放UIViewController時的內存問題
小結:
- 點擊一個按鈕,我的應用程序模態呈現
UIViewController
(我稱之爲 「VC1」)。 - 從VC1開始,用戶可以選擇打開(使用
pushViewController
)aUITableViewController
(「VC2」)並返回。 - 從VC1開始,用戶可以選擇打開(使用
pushViewController
)aUIViewController
(「VC3」)並返回。 - 最後用戶可解除VC1
VC2和VC2在VC1引用作爲屬性和它們必須保持在存儲器中。當用戶解除VC1然後我釋放所有。
VC3包含一個簡單視圖,只有一個UITextField,becomeFirstResponder
當viewWillAppear
被調用時。
問題:
當我打開VC1,然後VC2,回頭和罷免:這一切都OK,應用程序返回到「現場字節」相同的初始量(即1,20MB)。當我打開VC1,然後打開VC3時,字節變爲2MB。當我寫的文本字段裏面的東西分配上升到2,50MB
在這一瞬間儀器發現16字節與校對內存泄漏作爲負責任的圖書館和PRRfInit作爲負責任的來電
義無反顧地後VC1和解聘的分配仍然2,50MB 排序按類別儀器我檢查了VC1,VC2和VC3有0字節直播,但總體仍有2,50MB
是一個還涉及到鍵盤?
Emh ...現在我只是在模擬器上開發和測試,由於設備不可用... 我會嘗試儘快在真實設備上進行測試。我覺得奇怪的是,爲什麼彈出鍵盤並在文本字段中寫入意味着增加1MB,這是永遠不會釋放的。 PS:我認爲ProofReader是SDK的一部分 – user370773 2010-07-08 17:01:10
那1MB可能是鍵盤的UI?它會將它保存在內存中,以備再次顯示 - 如果它已經在內存中,它可以更快地響應!如果需要內存,它可以稍後釋放它 - 這不是泄漏,而是優化! – deanWombourne 2010-07-09 12:11:00