【问题标题】:cfnetwork memory leaks in iPhoneiPhone中的cfnetwork内存泄漏
【发布时间】:2009-08-25 19:27:19
【问题描述】:

我的应用程序中出现以下类型的内存泄漏 - 仪器检查。我已正确分配和释放每个对象。但是我遇到了这种类型的内存泄漏。

std::_Deque_base<__cfurlcachenode std::allocator> >::_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

【问题讨论】:

  • 您是否在代码中的任何位置调用[NSURLCache setSharedURLCache:]?您应该 - 为响应设置分片缓存 - 但您只能在应用程序中执行此操作一次(最好在应用程序启动后在应用程序委托中)。如果您在应用程序中多次调用此方法,根据我的经验,您将开始看到这种内存泄漏。

标签: iphone memory-leaks cfnetwork


【解决方案1】:

在您的 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];

}

【讨论】:

  • 这似乎让大的对我来说消失了。
【解决方案2】:

您是在手机还是模拟器上进行分析?

我听说在模拟器上NSURLConnection 类中存在内存泄漏。

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

NSURLConnection 类本身在 OS 2.x 中的 sendSynchronousRequest 方法中存在泄漏。这是 Apple 完全意识到的一个问题。

【讨论】:

  • OS 3.1.2 上仍有漏洞。我一直在发疯,试图了解发生了什么。 CFNetwork 中也有随机崩溃。我编写了一个小示例程序来演示该问题,因此希望 Apple 能够解决它。同时,ASIHTTPRequest 是 NSURLConnection 的绝佳替代品。到目前为止,零泄漏,零崩溃。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-23
  • 2011-12-10
  • 2011-05-24
  • 2023-03-20
相关资源
最近更新 更多