Загрузка большого файла с MKNetworkKit приводит к пустому файлу
Я пытаюсь загрузить большой файл с помощью MKNetworkKit (iOS7). В настоящее время используется код ниже:
- (MKNetworkOperation*)downloadFile: (NSString*)url :(NSString*)output {
NSString* fullPath = [documentsPath stringByAppendingPathComponent:output];
MKNetworkOperation *op = [self operationWithURLString:url params:nil httpMethod:@"GET"];
[op addDownloadStream:[NSOutputStream outputStreamToFileAtPath:fullPath append:NO]];
return op;
}
Затем я вызываю это из другого класса, как это:
Tools *dl = [[Tools alloc]init];
MKNetworkOperation* op = [dl downloadFile:someURL :[documentsPath stringByAppendingPathComponent:@"someFile.txt"]];
[op onDownloadProgressChanged:^(double prog) {
progressView.progress = prog;
progressLabel.text = [NSString stringWithFormat:@"%.1f%%",prog*100];
}];
[op addCompletionHandler:^(MKNetworkOperation *completedOperation){
//Downloaded file completed here
} errorHandler:^(MKNetworkOperation *completedOperation, NSError *error){
NSLog(@"%@", error);
}];
[dl enqueueOperation: op];
После завершения загрузки имя файла отображается в папке "Документы", но файл имеет нулевые байты и пуст. Разве MKNetworkKit не любит скачивать большие файлы?
1 ответ
Решение
Я обнаружил ошибку, кажется, что я случайно положил выходной файл в неправильном месте. Поскольку папка не существует, MKNetworkKit не записывает ее в папку документов. Указание правильного пути решило это.