UIWebView内存泄漏解决办法(一)

UIWebView


UIWebView的内存问题,其实在iOS7以前就一直存在,但是由于webView加载的内容,程序员是无法控制的,所以一直没有一个很好的解决办法。最近,公司的项目也要做有关与h5的交互。所以,会大量使用UIWebView,为了防止内存泄漏,而造成程序闪退问题,所以,还是需要解决这个问题:研究了一段,流行的一个解决办法就是:网络缓存和释放UIWebView中的多余资源;

具体如下“

1、关闭缓存
<pre name="code" class="objc">-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    //关闭缓存
    [[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"WebKitCacheModelPreferenceKey"];
    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitDiskImageCacheEnabled"];
    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitOfflineWebApplicationCacheEnabled"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}
 
2、退出该页面的时候,需要释放不需要的资源:
-(void)viewDidDisappear:(BOOL)animated
{
    [super viewDidDisappear:animated];
    [_web loadRequest:nil];
    [_web removeFromSuperview];
    _web = nil;
    _web.delegate = nil;
    [_web stopLoading];
}

3、当收到内存警告的时候,需要处理网络的缓存:
-(void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    [[NSURLCache sharedURLCache] removeAllCachedResponses];
}

这是现在流行的一个解决办法,但是,效果甚微。
还需要继续研究。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值