我想加载没有缓存的webview?
//Create a URL object.
NSURL *url = [NSURL URLWithString:urlAddress];
//URL Request Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
//Load the request in the UIWebView.
[kdgWebView loadRequest:requestObj];
Run Code Online (Sandbox Code Playgroud) 我正在试图弄清楚如何使用URL加载框架来加载利用缓存的URL.
我正在使用NSURLConnections并为它们提供NSURLRequests.我甚至在那些对NSURLRequestReturnCacheDataElseLoad的请求上设置了cachePolicy.我第一次加载请求时,它会自动放入缓存中([NSURLCache sharedCache]有它).但是下次加载相同的请求时,NSURLConnection似乎忽略了缓存中的内容并重新加载数据.
我应该手动实现缓存查找并返回缓存数据吗?NSURLConnection不这样做吗?或者有没有办法让框架无缝地使用缓存?
更新:尝试以下但没有成功:
NSURLRequestReturnCacheDataElseLoad而不是NSURLRequestUseProtocolCachePolicy+[NSURLConnection sendSynchronousRequest:returningResponse:error:]而不是异步加载以下代码从不同大小的服务器下载700多个图像,这里的问题是内存(即使使用ARC)永远不会被释放,最终会出现内存警告,然后应用程序退出.我在这种方法中尝试了@autoreleasepool,但似乎没有用.此外,我已经尝试在不同的位置停止for循环,以查看内存是否在完成后释放,但事实并非如此.
此方法在for循环内调用,并接收图像URL和短名称.它已经在后台线程和主线程中尝试了相同的结果(内存方面).
-(void)saveImage:(NSString*)image name:(NSString*)imageName{
int k = 0;
for (int j = 0; j < [imageName length]; j++) {
if ([imageName characterAtIndex:j] == '/') {
k = j;
}
}if (k != 0) {
imageName = [imageName substringFromIndex:k+1];
}
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", imageName]];
if ([fileManager fileExistsAtPath:fullPath]) {
[fileManager removeItemAtPath:fullPath error:nil];
}
NSURL *url = [NSURL URLWithString:image];
NSData *data = [[NSData alloc]initWithContentsOfURL:url];
NSLog(@"Saved: %d:%@", [fileManager createFileAtPath:fullPath contents:data attributes:nil], url);
data = nil;
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions …Run Code Online (Sandbox Code Playgroud)