2009-08-25 62 views
0

我在應用程序中檢測到以下類型的內存泄漏 - 儀器檢查。我已妥善地分配了&解除分配每個對象。不過,我正在得到這種類型的內存泄漏。iPhone中的cfnetwork內存泄漏

的std :: _ Deque_base < __CFURLCacheNode *,性病::分配器< __CFURLCacheNode *>> :: _ M_allocate_node()

這背後產生這些種類泄漏的原因是什麼?

爲什麼會發生內存泄漏?

圖片: -

alt text http://img197.imageshack.us/img197/9571/problem151.png

alt text http://img194.imageshack.us/img194/6181/problem152.png

alt text http://img194.imageshack.us/img194/8035/problem153.png

alt text http://img193.imageshack.us/img193/6092/problem154.png

+0

你叫'[NSURLCache setSharedURLCache:]'在你的代碼的任何地方?您應該 - 爲響應設置分片緩存 - 但您只能在應用中執行一次操作(最好在應用啓動後在應用代理中執行)。如果您在應用程序中多次調用此方法,按照我的經驗,您將開始看到這種內存泄漏。 – rennarda 2013-04-12 13:56:55

回答

10

在appDidFinishL中實現以下代碼。功能

會有沒有泄漏

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

// Override point for customization after app launch  
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil]; 
[NSURLCache setSharedURLCache:sharedCache]; 
[sharedCache release]; 

[window addSubview:[navigationController view]]; 
[window makeKeyAndVisible]; 

}

+1

在設備相關問題上,這是正確的答案。謝謝Spark – Tornado 2012-06-27 08:06:28

+0

這似乎使大的消失了我。 – Morkrom 2013-08-12 18:19:47

1

你剖析的電話或在模擬器

我聽說在模擬器上有NSURLConnection類的內存泄漏。

http://www.iphonedevforums.com/forum/general-development-questions-advice/1086-memory-leaks.html

的NSURLConnection的類本身具有在OS 2.x中sendSynchronousRequest方法中的泄漏這是蘋果完全意識到的一個問題。

+0

OS 3.1.2上仍有泄漏。試圖瞭解發生了什麼,我一直在瘋狂。 CFNetwork中也有隨機崩潰。我寫了一個小示例程序來展示這個問題,希望蘋果能夠解決這個問題。與此同時,ASIHTTPRequest是NSURLConnection的驚人替代品。零泄漏,迄今爲止零崩潰。 – 2009-12-22 06:26:50