iOS在后台下载多个文件

时间:2014-08-02 10:03:56

标签: ios objective-c nsurlsession uibackgroundtask

我阅读了一些文章,但找不到我要找的内容,所以这里是我的查询。

我从服务器下载了一些文件,并且存在用户锁定其屏幕的情况,在这种情况下,ios设备失去其网络连接并且文件同步失败。

我在NSURLSession上阅读了一些文章,但它可以从 iOS 7 开始,而我正在开发的应用程序来自 iOS 6 及更高版本。

有没有办法可以在后台下载20或30个文件,或者当用户以通用方式点击锁定屏幕时,无需担心我支持的操作系统版本。

截至目前,我已经读过我们有30秒的时间来执行网络活动,所以在这30秒内服务器呼叫的数量有限制吗?

关于我的代码,我有一个名为DownloadFiles的类调用服务,该服务返回一个fileURL数组并使用NSData我正在获取这些文件并将它们保存在doc目录中,所以实现后台调用的事情我需要传递我的数组的索引,它将检测正在下载的当前文件,然后从下一个索引继续。

  for(NSDictionary *dict in filearray) {
     NSString *fileURL = [[dict valueForKey:@"FileURL"]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
     NSData *fileData  = [NSData dataWithContentsOfURL:theFileURL];

     if (fileData.length==0 || fileData==nil || theFileURL==nil) {
        NSLog(@"empty file URL = %@",theFileURL);
     }
     if (fileData.length!=0){
        BOOL savefile = [fileData writeToFile:[HTML_SERVER_FILES stringByAppendingPathComponent:[dict valueForKey:@"FileName"]] atomically:YES];
        if (savefile!=YES) {
           NSLog(@"Not saved file = %@",theFileURL);
        }else{
           NSLog(@"file saved at path %@",HTML_SERVER_FILES);
        }

        fileData = nil;
    }
}

请告诉我在这种情况下需要做些什么。

0 个答案:

没有答案