Ios &引用;imagePickerController:didFinishPickingMediaWithInfo:"&引用;UIImagePickerControllerMediaURL“;信息字典中的关键奇怪行为

Ios &引用;imagePickerController:didFinishPickingMediaWithInfo:"&引用;UIImagePickerControllerMediaURL“;信息字典中的关键奇怪行为,ios,objective-c,uiimagepickercontroller,Ios,Objective C,Uiimagepickercontroller,在“imagePickerController:didFinishPickingMediaWithInfo:”中,信息字典有时没有键“UIImagePickerController-DiaUrl”。有时它确实有。我试着清理目标,但没用。而且,工作流程总是一样的:我按照相同的步骤从库中选择相同的视频文件。有时信息字典中有“UIImagePickerControllerMediaURL”键,有时同一文件的信息字典本身中没有“UIImagePickerControllerMediaURL”。我不明白。

在“
imagePickerController:didFinishPickingMediaWithInfo:
”中,信息字典有时没有键“
UIImagePickerController-DiaUrl
”。有时它确实有。我试着清理目标,但没用。而且,工作流程总是一样的:我按照相同的步骤从库中选择相同的视频文件。有时信息字典中有“
UIImagePickerControllerMediaURL
”键,有时同一文件的信息字典本身中没有“
UIImagePickerControllerMediaURL
”。我不明白。有人能帮忙吗

这是我从照片库中选择视频/电影时信息字典的
NSLog

info dict = {
    UIImagePickerControllerMediaType = "public.movie";
    UIImagePickerControllerReferenceURL = "assets-library://asset/asset.MOV?id=1000000466&ext=MOV";
} 

当您的帐户在iCloud上保存视频时会发生这种情况。当您选择视频时,它将临时从icloud下载并显示给您,这样UIImagePickerControllerMediaURL就不会出现。

但它会显示UIImagePickerControllerMediaType=“public.movie”;在我的日志中。如果你的媒体类型是mov,那么它的url也不会发生。这发生在iPhone 4上,有2GB的可用空间,iOS 6.1,有+2分钟的视频。对于拥有600MB可用空间的iPhone5,对于同样长度的视频,这种情况是不会发生的。我认为这可能与设备上缺少用于保存临时压缩视频的可用空间有关,但这并不能说明问题。有人有解决方案吗?上浮的答案似乎根本不理解这个问题。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{ 
    NSMutableDictionary *infoDict = [[NSMutableDictionary alloc]init];

    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];

    if ([mediaType isEqualToString:@"public.image"]){

        UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"" message:@"You Select a image Please select Movie" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];

        [myAlertView show];

        [myAlertView release];

    }

    else if ([mediaType isEqualToString:@"public.movie"]){

        NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];

        mAppDelegate.uploadType = @"Video";

        NSData *webData = [NSData dataWithContentsOfURL:videoURL];

        [infoDict setValue:webData forKey:@"VideoUrl"];

        [infoDict setValue:[[mAppDelegate.userInfoArray objectAtIndex:1]valueForKey:@"user_id"] forKey:@"user_id"];

        [[WakeUpParsing sharedInstance] assignSender:self];

        [[WakeUpParsing sharedInstance] startParsingForVedioUploade:infoDict];

    }

    [picker dismissModalViewControllerAnimated:YES];

    [infoDict release];

}


- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker

{

    // Dismiss the image selection and close the program
    [[picker parentViewController] dismissModalViewControllerAnimated:YES];

}