NSInvalidArgumentException - приложение закрывается, в то время как я пытаюсь скопировать захваченное видео в папку документов - PullRequest
3 голосов
/ 16 мая 2010

Я бы хотел испытать мудрость толпы .. потому что я сейчас расстроен. Заранее спасибо.

Так вот мой код:

- (void)imagePickerController:(UIImagePickerController *)ipc didFinishPickingMediaWithInfo:(NSDictionary *)info{

NSLog (@ "info:% @", info);

NSString * newFilename = [NSString stringWithFormat: @ "% @ /% @. Mov", [NSHomeDirectory () stringByAppendingPathComponent: @ "Documents"], [NSString stringWithFormat: @ "% d", (long) [[NSDate date] timeIntervalSince1970]]];

NSLog (@ "имя нового файла:% @", имя нового файла);

NSFileManager * filemgr = [NSFileManager defaultManager];

NSError * err; if ([filemgr copyItemAtPath: [info objectForKey: @ "UIImagePickerControllerMediaURL"] toPath: ошибка нового имени файла: & err] == ДА) NSLog (@ "Переместить успешно"); еще NSLog (@ "Переместить не удалось");

и это журнал:

 2010-05-16 18:19:01.975 erlkoenig[7099:307] info: {
    UIImagePickerControllerMediaType = "public.movie";
    UIImagePickerControllerMediaURL = "file://localhost/private/var/mobile/Applications/BE25F9B5-2D08-4B59-8B62-D04DF7BB7E5B/tmp/-Tmp-/capture-T0x108cb0.tmp.8M81HU/capturedvideo.MOV";
   }
newFilename: /var/mobile/Applications/BE25F9B5-2D08-4B59-8B62-D04DF7BB7E5B/Documents/1274026741.mov

[NSURL fileSystemRepresentation]: unrecognized selector sent to instance 0x1c1f90
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSURL fileSystemRepresentation]: unrecognized selector sent to instance 0x1c1f90

1 Ответ

0 голосов
/ 21 июля 2010

Я могу следовать вашей логике, но у меня есть одна принципиальная проблема: это не то, как вы сохраняете видео .

Пожалуйста, посмотрите примерный пример ниже без соответствующей проверки ошибок.

(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{

    .... code here .....

    NSString* videoURL= [info objectForKey:UIImagePickerControllerMediaURL];

    //remember to test that the video is compatible for saving to the photos album

    UISaveVideoAtPathToSavedPhotosAlbum(videoURL, self, @selector(video:didFinishSavingWithError:contextInfo:), nil);

    .... code here .....

}
...