2012-02-03 125 views
1

我知道有很多關於內存泄漏的帖子。現在我正在閱讀這些內容。查找內存泄漏

但也許有些人可以給我一些提示如何找到在哪個控制器或哪個對象泄漏。因爲現在我已經棧對象名跡像0xcvf34和responsoble框架,該框架

Leaked Object # Address Size Responsible Library Responsible Frame 
__NSCFString,1 0xcvf34 32 Bytes Foundation -[NSPlaceholderString initWithBytes:length:encoding:] 

還有很多更

什麼可能是我的策略是什麼?因爲找到哪個NSString泄漏真的很難,因爲有很多代碼。

我正在使用蘋果樂器。

+0

一個非常重要的事情是:'NSString'你提到的可能是不漏* * *,但泄露*。你必須走分配軌跡找到罪魁禍首(所有者)。 – jv42 2012-02-03 08:09:51

回答

3

選擇該行並查看側邊欄,它會告訴您它屬於哪個類。

+0

它不會說它屬於哪個類。也許我現在不會如何配置儀器的正確設置? – Streetboy 2012-02-03 07:45:24

+0

可能是雙擊該行會導致一些其他的根本原因,這可能會幫助你。 – Vignesh 2012-02-03 07:50:05

+0

然後它顯示我認爲代碼的彙編程序。或不可用 – Streetboy 2012-02-03 07:55:41

0

基礎設施對象開始泄漏並且可悲的是,大部分時間內你無能爲力。

如果您希望您的應用程序在AppStore中獲得批准,則該規則將修復代碼本身的泄漏,也就是說,負責人將是「YourViewController」而不是「Foundation」,因爲基金會泄漏意味着「它的蘋果的錯,而不是你的」。

看看這篇文章,它可能給你一些方向對於這個話題:

http://www.raywenderlich.com/2696/how-to-debug-memory-leaks-with-xcode-and-instruments-tutorial

+1

*基金會物品開始泄漏並且悲傷的情況很常見,大部分時間你都無法做到。 a)我不覺得它「很常見」。我正在處理的這個項目現在有**一個泄漏**。 b)提交一個錯誤。 c)泄漏指出作出分配的圖像,而不是負責ref計數不平衡的庫。 – justin 2012-02-03 08:03:11

+0

看看第二回答http://stackoverflow.com/questions/3384537/nsxmlparser-memory-leak-on-ios-4-0-not-nscfstring。多數民衆贊成我的意思是當我說「蘋果的錯」和「非常普遍」。你的項目中有一處漏洞真是太棒了,我的ASIHTTPRequest有2個。無論如何,我的觀點是,我沒有花時間去尋找解決Apple庫缺陷的解決方法,以減少泄漏,除非漏洞的數量很大。 – codingcthulhu 2012-02-03 08:36:49

+0

@codingcthulu是的,我知道蘋果公司發佈泄漏的軟件 - 我已經使用了它們的libs很多年了。這些錯誤來了,他們走了。我的觀點是,這只是「非常普通」。你連接的bug(自然)非常孤立。雖然缺陷會通過,但系統庫肯定比來自應用程序域的典型程序更清潔。那是一個非常認真對待泄密的人。 – justin 2012-02-03 09:00:55