2010-07-07 62 views
3

我有一个简单的UIImagePickerController它试图抢在原选定的图像:iPhone 4.0模拟器:didFinishPickingMediaWithInfo丢失UIImagePickerControllerOriginalImage?

if ([UIImagePickerController isSourceTypeAvailable: 
    UIImagePickerControllerSourceTypePhotoLibrary]) { 

    if(defaultpicker == nil){ 
     defaultpicker = [[UIImagePickerController alloc] init]; 
    } 

    defaultpicker.delegate = self; 
    defaultpicker.allowsEditing = NO; 
    defaultpicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
    [self presentModalViewController:defaultpicker animated:YES]; 
} 

在选择:

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

    [imagepicker dismissModalViewControllerAnimated:YES]; 

    NSString* key = nil; 

    for(key in info){ 
     NSLog(@"Info: %@", key); 
    } 

    UIImage *theImage = (UIImage *)[info objectForKey: UIImagePickerControllerOriginalImage]; 

我使用4.0为基础的SDK,并针对3.1.3在这一刻。运行4.0模拟器,该信息集合只包含:

2010-07-07 16:19:33.414 ******[516:307] Info: UIImagePickerControllerMediaType 

在设备上,或者在iPad 3.2模拟器上运行我得到:

2010-07-07 16:19:33.405 ****[516:307] Info: UIImagePickerControllerOriginalImage 

2010-07-07 16:19:33.414 ****[516:307] Info: UIImagePickerControllerMediaType 

我缺少的东西?在更新到SDK 4.0之前,这工作正常。我没有任何警告等。

显然,如果没有模拟器中的原始图像,我不能显示或对选定的图像做任何事情,因为我不知道它是什么。

+0

我知道这是几个月后,但我挣扎着同样的问题,并发现,虽然它被问了很多次,但它从来没有回答。那么,我很高兴地说,我已经想出了它,并将它发布在几个几乎相同的问题上,这些问题在搜索中首先出现。我在这里发布了完整的答案:http://stackoverflow.com/questions/3088874/didfinishpickingmediawithinfo-return-nil-photo/4192109 – 2010-11-16 07:59:04

回答

3

我在运行4.0(3GS)的设备上运行,并得到同样的问题。它以前工作得很好。所以这不是一个模拟器错误。不过对于我来说,这似乎只发生在用户创建的相册中。如果从相机胶卷中选择或使用相机拍摄,它可以正常工作:/。

如果我找到一个解决方案(现在工作)将张贴。

更新:它似乎是一个苹果的错误,因为正如我们都说过的,返回的信息字典仅包含媒体类型的键值对,即使此值为“public.image”它也会不会像UIImagePickerControllerOriginalImage键那样返回该图像。我已经提交bug报告错误ID#8176175.

+2

更新:苹果回应了错误支持。 这是错误ID#8176175的后续行为。经过进一步调查后,已确定这是一个已知问题,目前正在通过工程进行调查。此问题已在原始Bug ID#8113630下的我们的错​​误数据库中提交。用于跟踪此重复问题的原始错误编号可以在State列中找到,格式如下:Duplicate/OrigBug#。 感谢您提交此错误报告。我们真诚感谢您的帮助,帮助我们发现和隔离错误。 – 2010-07-13 17:46:43

+0

感谢您的更新:-) – nullabletype 2010-07-30 13:52:24

0

我得到这个为好,但如果你选择了这个,你会得到他们两个(现在它看起来像一个解决方法):

self.imagePicker .allowsEditing = YES;

+0

我刚刚直接在iPhone上调试,这是相当缓慢和痛苦,但至少我知道它在设备上的行为正确! – nullabletype 2010-07-30 13:53:22