ASIHTTPRequestErrorDomain Code = 8. Невозможно переместить файл из временного каталога в документы - PullRequest
3 голосов
/ 28 сентября 2011

Я скачиваю файлы с ASIHTTPReqeust. Все загружается нормально, но не может переместить файл из временного каталога в документы. Когда я реализую

-(void) request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data

запрос не выполнен с ошибкой. Но файл загружен.

Если я удаляю эту реализацию, все в порядке, и файлы перемещаются в документы. Вот текст ошибки:

Error Domain=ASIHTTPRequestErrorDomain Code=8 "Failed to move file from '/var/folders/Qu/Qu0o0VcpEY4npJr2C1yPzE+++TI/-Tmp-/Skrillex feat. Nero - Wobbleland.mp3' to '/Users/Timur/Library/Application Support/iPhone Simulator/4.3/Applications/34389282-4013-4354-95D9-DF2847B4EE55/Documents/Audio/Skrillex feat. Nero - Wobbleland.mp3'" UserInfo=0x5949520 {NSUnderlyingError=0x59992a0 "The operation couldn’t be completed. (Cocoa error 4.)", NSLocalizedDescription=Failed to move file from '/var/folders/Qu/Qu0o0VcpEY4npJr2C1yPzE+++TI/-Tmp-/Skrillex feat. Nero - Wobbleland.mp3' to '/Users/Timur/Library/Application Support/iPhone Simulator/4.3/Applications/34389282-4013-4354-95D9-DF2847B4EE55/Documents/Audio/Skrillex feat. Nero - Wobbleland.mp3'}

У кого была похожая проблема?

Ответы [ 2 ]

9 голосов
/ 28 сентября 2011

Что часто привлекает внимание людей, так это то, что вам нужно создать каталог, который вы загружаете в себя (ASIHTTPRequest не создаст его автоматически).

Однако, если вы скажете, что он связан с реализацией didReceiveDataэто не так.

Если вы посмотрите на ASIHTTPRequest.m , вы увидите, что он устанавливает «dataWillBeHandledExternally», если вы реализуете «didReceiveData» в делегате - это будет препятствовать тому, чтобы данные былизаписано на диск.Вы можете либо сами записать данные, либо изменить код ASIHTTPRequest.m, добавив флаг, который заставит его обрабатывать данные и внутри себя.

1 голос
/ 11 апреля 2012

Я столкнулся с той же ошибкой, но причина была в другом.Я опубликую свою проблему - на всякий случай, если у кого-то еще есть подобная ситуация.

Я пытался удалить старые изображения перед сохранением новых.

NSString *mImgName = [managedObj valueForKey:@"aImgName"];

NSString * mFilePath = [[self applicationDocumentsDirectory] 
                stringByAppendingPathComponent:mImgName];

if ([mFileManager fileExistsAtPath:mFilePath]) 
{
    [mFileManager removeItemAtPath:mFilePath error:nil];
}

Проблема была - в случае mImgName равно nil, mFileManager удалит весь каталог.

Добавление дополнительной проверки значения nil или слишком короткого значения mImgName позволило решить проблему.

Надеюсь, это кому-нибудь поможет!

...