2013-01-07 131 views
1

我正在爲iPhone開發一個應用程序,並遇到一些內存管理問題。在應用程序執行過程中,活動字節連續增加,不受限制。我試圖在我的代碼中追蹤這個問題,但似乎無法找到任何會導致實時字節數增加的事情。我在執行過程中注意到的一件事情是CFString(Immutable)的分配增加最快,從不減少或保持不變。有誰知道爲什麼會發生這種情況?在執行過程中,應用程序正在執行的操作是從本地數組或字符串填充表視圖,然後下載另一個字符串對象數組並填充不同的表視圖。我正在使用ARC。CFString內存管理問題

enter image description here

+0

當你尋找泄漏時,你看到有什麼東西嗎?或者,活動字節只是在增加?如果是後者,請確保您沒有任何循環邏輯(例如,從視圖控制器A執行模態延續以查看控制器B,並從B執行另一個從B回到A(而不是解除B))。查看我追蹤分配來源的第二點。 – Rob

+0

@kaiserphellos您的問題是否解決?你能讓我知道什麼解決了你的問題嗎? –

回答

1

由於缺乏具體的東西去,我給你有點法律顧問:

  • 關於如何使用工具來發現泄漏的指導見Finding leaks with Instruments

  • 有關如何從您的分配,到更有意義的分配來源分析的具體建議,請參閱此Stack Overflow answer的第4點。簡而言之,突出顯示您在分配中不明原因的跳轉之一,設置底部窗口以顯示調用樹,隱藏系統庫,並查看您的哪些例程內存正在被使用。

  • 此外,請不要忽略static analyzer,如果您不使用ARC或者使用任何Core Foundation調用,這一點尤其重要。

  • 你在做什麼與核心基礎功能?如果是這樣,您顯然需要知道您必須將所有權明確轉讓給ARC(使用CFBridgingRelease__bridge_transfer)或手動撥打CFRelease。不過,我先前的觀點的靜態分析儀會指出這一點。