我正在製作一個具有幾個視圖控制器與UIDatePicker控件的應用程序。UIDatePicker內存泄漏與ARC
有大量內存警告後,我已經做了很多調試的病因。使用儀器,我發現只要包含UIDatePicker的視圖控制器出現,內存使用量就會增加2-3mb。最終,這會導致記憶警告。儘管我可以在這裏做很多事情,並且自從重寫這些函數以來已經看到崩潰事件的急劇下降,但我仍然不滿意這種行爲並想要修復它。
的的UIDatePicker的是XIB文件的一部分。我試圖將它們從XIB中以編程方式添加它們。這並不能解決問題。我也嘗試過使用一個(線程安全的)單例,這將內存使用量限制爲只有一個實例(所以內存使用不會增加),但是我儘可能避免使用單例。使用單?
我看到在iOS 5和4.3此行爲,跨運行它。我使用ARC的所有設備,如標題所暗示的。
儀表不顯示任何內存泄漏。
這裏是從儀器的屏幕截圖。在使用中的每個加強是當出現包含一個日期選取一個VC。在該曲線圖的起始基線是內存使用情況的2.3MB。
http://i.stack.imgur.com/1S7ns.png
乾杯!
'UIDatePicker'可能是一個紅鯡魚。你確定你沒有在視圖創建中做任何其他事情,導致內存增加?我無法在這裏重現您的問題。 – 2012-01-27 02:23:19
作爲測試,我剛剛從XIB中刪除了UIDatePicker。問題消失了。它被用作UITextField的輸入視圖,因此在XIB中作爲與VC視圖相同級別的單獨視圖開始。 – gamblor87 2012-01-27 02:35:33
好的,只是刪除日期選擇器可能不是一個好的測試,因爲委託方法不再被調用。嘗試評論任何你有任何**任何**與日期選擇器遠程相關,看看你是否仍然收到泄漏。另外,你的日期選擇模式是「UIDatePickerModeDateAndTime」嗎?該模式存在已知的泄漏。 – 2012-01-27 02:44:37