我正在使用来自真棒AFNetworking的AFHTTPRequestOperation
下载文件。
我正在下载大型zip文件,下载完成后需要解压缩。但是由于AFHTTPRequestOperation
的完成块发生在主线程上,并且这些是相对较大的文件,我需要在后台线程上解压缩,这是我用GCD实现的。
但是在后台线程中解压缩可能会出错,如果是这样的话,我需要能够阻止线程继续...有没有办法用GCD来做或者我必须把所有东西放在if
陈述的巨大主体?
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *theOperation, id responseObject){
NSLog(@"*** TP DOWNLOADER: Finished downloading");
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
//Unzip the file:
ZipArchive *za = [[ZipArchive alloc] init];
BOOL unzipOpenFileSuccessful = [za UnzipOpenFile:operation.targetPath Password:@"thepassword"];
if(!unzipOpenFileSuccessful){
NSLog(@"Problems unzipping!");
//should return here and not keep doing work!
}
//keep doing work...
});
];
答案 0 :(得分:0)
如果发生错误,您可以“返回”。