在IOS4.0中使用UIWebView加载请求时内存泄漏

时间:2010-10-04 17:16:11

标签: cocoa-touch memory-leaks uiwebview ios

我有一个Web视图,它作为模态视图加载。使用以下代码加载网页后出现内存泄漏。

[myView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]
                                     cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
                                 timeoutInterval:30]];

我的dealloc方法如下:

- (void)dealloc
{
    myView.delegate = nil;
    [myView release];
    [url release];
    [super dealloc];
}

仪器显示5块GeneralBlock 32泄漏,但没有可用的堆栈跟踪。

泄漏每次加载网页后都会发生,每次加载时恰好是5个块。如果我在页面完全加载之前解除模态视图,则没有泄漏。如果我将缓存策略更改为NSURLRequestReturnCacheDataElseLoad仅在第一次加载网页时发生泄漏。

我已经尝试了以下链接中的方法,但它对我不起作用。

Leak UIWebView

感谢任何帮助。 感谢。

1 个答案:

答案 0 :(得分:2)

我在4.1之前的iOS中发现了几个UIWebView相关的泄漏(并详细报告了一个),因为我在我正在开发的当前iOS应用程序中大量使用HTML本地加载。它们都与WebKit实现的bug有关。

自4.1以来我没有看到任何这些泄漏。

如果你可以用4.1重新测试,并且泄漏消失了,那么我会忽略泄漏并继续前进。我已经批准了这些类型的泄漏应用程序,因为它们在Apple框架中并且在您的控制之外。