Поэтому я использую плагин, предоставленный Unity для фоновой загрузки. Этот плагин работает хорошо, за исключением фактического хранения файла.
Я не являюсь iOS разработчиком по торговле, так что, вероятно, вопрос новичка sh, но почему это не работает? Я получаю сообщение об ошибке, указывающее, что файл не существует.
Все, что мне нужно сделать, это получить файл и затем переместить его в мои документы. Хотя я немного сбит с толку, как тогда я получаю, что файл tmp становится моим окончательным типом файла?
https://github.com/Unity-Technologies/BackgroundDownload
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location
{
NSLog(@"Finished Download");
//NSLog(downloadTask.taskDescription);
NSLog(location.absoluteString);
NSFileManager* fileManager;
NSURL* destUri = GetDestinationUri(downloadTask.taskDescription, &fileManager);
NSLog(destUri.absoluteString);
NSError *error;
Boolean success = [fileManager replaceItemAtURL: destUri withItemAtURL: location backupItemName: nil options: NSFileManagerItemReplacementUsingNewMetadataOnly resultingItemURL: nil error: &error];
if(success)
{
NSLog(@"success");
}
else
{
NSLog(@"Fail %@", error);
}
UnityBackgroundDownload* download = [backgroundDownloads objectForKey: downloadTask];
download.status = kStatusDone;
}
static NSURL* GetDestinationUri(NSString* dest, NSFileManager** fileManager)
{
NSFileManager* manager = [NSFileManager defaultManager];
NSURL* documents = [[manager URLsForDirectory: NSDocumentDirectory inDomains: NSUserDomainMask] lastObject];
NSURL* destUri = [documents URLByAppendingPathComponent: dest];
if (fileManager != NULL)
*fileManager = manager;
return destUri;
}