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

UIWebView


接着上一篇博客,继续探究UIWebView内存的相关知识;因为没法控制UIWebView致使的内存增加,那么,只能给他一个大小,若是超过了这个限制的内存大小,就须要自动清除网络缓存便可代码以下:

若是你的iPhone应用程序嵌入UITableview或者直接发出HTTP请求与NSURLConnection的时候,都须要控制内存使用量。Web请求能够使用大量的内存,您可能会发现内存占用量的增加和增加的越多,使用的应用程序。其中一个咱们在应用程序中看到的高内存使用率的主要缘由是未能明确配置 NSURLCache。

一、首先,让咱们配置NSURLCache时,应用程序启动时(任何请求以前取得),高速缓存,因此咱们能够控制它的内存使用量。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {   
    int cacheSizeMemory = 4*1024*1024; // 4MB
    int cacheSizeDisk = 32*1024*1024; // 32MB
    NSURLCache *sharedCache = [[[NSURLCache alloc] initWithMemoryCapacity:cacheSizeMemory diskCapacity:cacheSizeDisk diskPath:@"nsurlcache"] autorelease];
    [NSURLCache setSharedURLCache:sharedCache];
}
上面配置了4MB的内存缓存和32MB磁盘高速缓存。磁盘高速缓存将驻留在默认的iOS缓存目录的子目录所谓的“nsurlcache”里面。

二、而后,咱们须要相应内存警告。
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
    [[NSURLCache sharedURLCache] removeAllCachedResponses];
}


总结:运行你会发现,一旦出发内存警告,内存就直接降下来了。