iOS 队列请求-超实用
来源:互联网 发布:unity3d宣传片 编辑:程序博客网 时间:2024/06/10 17:18
用法解析:
比如我现在要到服务端请求十几个pdf文件,下载到本地Document目录,那么用这个就非常好,
好处一:不会卡死主线程
好处二:下载完成有回调,可以在下载完成后,做一些刷新UI的操作,爽歪歪。
实例操作:
-(void)downloadPdfFileWithUrl:(NSArray *)modelList{
if(self.config.hasUpdateData)return;
NSMutableArray *mutableOperations = [NSMutableArrayarray];
int countIndex = 0;
for (MMPGetManualElementManualList *Modelin modelList)
{
NSString *fileName = Model.manualName;
[[NSUserDefaultsstandardUserDefaults] setValue:fileNameforKey:[NSStringstringWithFormat:@"%@%d",fileNameKey,countIndex]];
NSString *pdf_diret = Model.annexPath;
NSString *fileContentPath = [selfgetManualPath];
NSString *pdf_loc_path = pdf_diret.lastPathComponent;
NSString *pdf_url_path = [NSStringstringWithFormat:@"%@/%@",baseURL,pdf_diret];
NSString *abusolutePath = [fileContentPath stringByAppendingPathComponent:pdf_loc_path];
[pdf_path_arrayaddObject:pdf_loc_path];
countIndex++;
BOOL existFile = [[NSFileManagerdefaultManager] fileExistsAtPath:abusolutePathisDirectory:NO];
if (existFile && [selffileSizeAtPath:abusolutePath] == 0) {
[selfremoveFileAtPath:abusolutePath];
}elseif(existFile){
continue;
}
NSURLRequest* request = [NSURLRequestrequestWithURL:[NSURLURLWithString:[pdf_url_path stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ]cachePolicy:NSURLRequestReturnCacheDataElseLoadtimeoutInterval:60.f];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperationalloc] initWithRequest:request];
[operationsetOutputStream: [NSOutputStreamoutputStreamToFileAtPath:abusolutePath append:NO]];
[mutableOperationsaddObject:operation];
}
__block CGFloat progress =0.0f;
NSArray *operations = [AFURLConnectionOperationbatchOfRequestOperations:mutableOperations progressBlock:^(NSUInteger numberOfFinishedOperations,NSUInteger totalNumberOfOperations) {
progress = (float)numberOfFinishedOperations/totalNumberOfOperations;
NSLog(@"%f complete", progress);
}completionBlock:^(NSArray *operations) {
NSLog(@"All operations in batch complete");
MMActivityIndicator_stop();
self.service.customLoadingHint =NO;
self.config.hasUpdateData =YES;
}];
[[NSOperationQueuemainQueue] addOperations:operationswaitUntilFinished:NO];
}
- iOS 队列请求-超实用
- 超实用的iOS面试题集合
- IOS Table各类用法(超实用)
- iOS超实用Category合集 支持cocoapods导入
- iOS HTTP请求——同步请求、队列式异步请求、异步请求
- iOS---iOS开发零基础教程之AFNetWorking POST 队列请求
- Vim超实用集锦
- 超实用CSS代码
- 超实用PHP代码
- Linq入门 超实用
- 超实用电脑快捷键
- eclipse快捷键-超实用
- vim超实用命令
- sublime超实用快捷键
- 请求队列
- 超实用压力测试工具-ab工具
- 超实用压力测试工具-ab工具
- 超实用压力测试工具-ab工具
- Mysql CPU占用高的问题解决方法小结
- UML——宏观把控(一)
- llinux 的一些命令和错误
- 广义表的用法
- Unity3D教程:手游开发常用排序算法
- iOS 队列请求-超实用
- Linux字符串转换成时间并且得n天差后的时间
- Java读linux系统文件文件名乱码
- 利用Packstack自动化部署Openstack
- ./configure -build,-host,-target设置
- [2015/09/08] Unity3D飞机大战(简陋版) Practice
- java学习的一点知识-2015/9/8
- 实现字符串转为int
- Android apk动态加载机制的研究