我读过几篇文章,但找不到我要找的东西,所以这是我的查询。
我正在从服务器下载一些文件,并且有一种情况是用户锁定了他的屏幕,在这种情况下,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;
}
}
请让我知道在这种情况下需要做什么。