我一直在尝试下载image / txt,但是我需要这样做,直到该URL存在并下载该image / txt文件,所以我继续调用同一方法,并且在设置调试点时看到了这一点。
如果url正确,那么我在调试导航器中看不到任何队列,因为它没有再次调用方法。我将AFNetworking库指向相同的库,但是我想它的工作方式与我在NSURLSession中执行的方法相同,对吗?
案例:-我检查网址是否存在,因此如果存在网址,则先加载两个网址(time.txt和image.png),否则调用WebService(XmlParser)并继续检查以下文件的网址。
time.txt + image.png 要么 tryagain.txt
显示存在的任何一个。
还检查了这个AFNetworking问题,但是它没有帮助,因为我不想增加操作数量。我想加载任何存在的文件。
因为无论在AFNetworking / NSURLSession中成功还是失败,操作都会完成。
-(无效)下载 { NSString * imageUrl = [NSString stringWithFormat:@“%@”,txtNumber.text]; NSURLSessionConfiguration * sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration]; NSURLSession * session = [NSURLSession sessionWithConfiguration:sessionConfig 委托人:自己 RepresentativeQueue:nil]; NSURLSessionDownloadTask * getImageTask = [会话downloadTaskWithURL:[NSURL URLWithString:imageUrl] completeHandler:^(NSURL *位置, NSURLResponse *响应, NSError *错误) { UIImage * downloadedImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:location]]; dispatch_async(dispatch_get_main_queue(),^ { //处理图片 如果(downloadedImage) { carImgView.image = downloadedImage; 结果= TRUE; } 其他 { 结果=假; [自我尝试]; } }); }]; [getImageTask简历]; }
-(void)tryagain { NSString * strImg = [[NSString stringWithFormat:@“%@”,gblPolicyNo] stringByAppendingString:FilePolStatus]; NSString * apiImage = [NSString stringWithFormat:@“ http://moviepoint.info/%@/%@”,FolderPolStatus,strImg]; NSURL * aImgUrl = [NSURL URLWithString:apiImage]; // 2 NSURLSessionConfiguration * sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration]; // 3 tryAgainSession = [NSURLSession sessionWithConfiguration:sessionConfig 委托人:自己 RepresentativeQueue:nil]; // 1 getTryAgainTask = [tryAgainSession downloadTaskWithURL:aImgUrl completeHandler:^(NSURL *位置, NSURLResponse *响应, NSError *错误) { // 2 UIImage * downloadedImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:location]]; // 3 dispatch_async(dispatch_get_main_queue(),^ { //处理图片 如果(downloadedImage) { [policyImgWebView loadData:[NSData dataWithContentsOfURL:位置] MIMEType:无textEncodingName:无baseURL:无]; NSLog(@“是”); } 其他 { NSLog(@“ NO”); [self performInBackground]; } }); }]; // 4 [getTryAgainTask简历]; }
如果我做错了,请纠正我,并帮助我解决此问题。
通过采取一个全局NSURLSession解决
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句