Ios 在后台线程中下载多个文件?
我一次下载文件,或者一个接一个,或者只根据用户需求下载一个。下载文件后,我会将通知作为SuccessFull消息发送到另一个视图 当我一次下载一个文件时,它成功地下载了该文件。但当我试图在6秒的时间间隔内下载两个或多个文件时(按另一个下载按钮),第一个文件没有下载。它只下载我要下载的最后一个文件 任何帮助都将不胜感激Ios 在后台线程中下载多个文件?,ios,objective-c,nsurlconnection,Ios,Objective C,Nsurlconnection,我一次下载文件,或者一个接一个,或者只根据用户需求下载一个。下载文件后,我会将通知作为SuccessFull消息发送到另一个视图 当我一次下载一个文件时,它成功地下载了该文件。但当我试图在6秒的时间间隔内下载两个或多个文件时(按另一个下载按钮),第一个文件没有下载。它只下载我要下载的最后一个文件 任何帮助都将不胜感激 url=[NSURL URLWithString:currentURL]; NSMutableURLRequest * request = [[NSMutableURLReques
url=[NSURL URLWithString:currentURL];
NSMutableURLRequest * request = [[NSMutableURLRequest alloc]initWithURL:url];
[request setHTTPMethod:@"GET"];
NSURLConnection *connection=[[NSURLConnection alloc]initWithRequest:request delegate:self startImmediately:YES];
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void)
{ //Background Thread
{
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *dataMain, NSError *error)
{
if ([dataMain length]/1024.0f > 600 && error == nil)
{
[dataMain writeToFile:pathOriginal atomically:YES];
NSLog(@"orginal file saved");
}
}];
}
dispatch_async(dispatch_get_main_queue(), ^(void){
[[NSNotificationCenter defaultCenter] postNotificationName:@"TestNotification" object:self];
}); });
在每次调用之前使用dispatch async。这样,每个调用将在不同的线程上运行,并将解决您的问题
希望这有帮助
NSURLConnection
已弃用。您应该使用nsursession
进行新的开发。NSURLSession
将处理多个下载。(NSURLConnection也是如此,但考虑到它已被弃用,因此不值得调试。你能详细说明一下吗?mobile中的Im不能发布代码片段,而是复制此调度异步(调度获取全局队列(调度队列优先级默认为0),^(无效){//后台线程调度异步(调度获取主队列(),^(无效){//运行UI更新});});天哪,为什么?这是4个主要版本过时了。Xcode 9正在测试中,所以很快就会有5个主要版本过时。耶,我知道我刚刚开始,我的macbook只支持Xcode 4。你只能使用Xcode 4.6为iOS 6构建。你的Mac太旧了,不能运行当前版本的OS X吗?我的家用Mac是2012年年中的MBP,它运行的是最新的OS10(10.12.6)还可以。我的mac笔记本电脑只支持10.8。