UIWebView
接着上一篇博客,继续探究UIWebView内存的相关知识;由于无法控制UIWebView导致的内存增长,那么,只能给他一个大小,如果超过了这个限制的内存大小,就需要自动清除网络缓存即可代码如下:
如果你的iPhone应用程序嵌入UITableview或者直接发出HTTP请求与NSURLConnection的时候,都需要控制内存使用量。Web请求可以使用大量的内存,您可能会发现内存占用量的增长和增长的越多,使用的应用程序。其中一个我们在应用程序中看到的高内存使用率的主要原因是未能明确配置
NSURLCache。
1、首先,让我们配置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”里面。
2、然后,我们需要相应内存警告。
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
[[NSURLCache sharedURLCache] removeAllCachedResponses];
}
总结:运行你会发现,一旦出发内存警告,内存就直接降下来了。