iPhone 4.0模拟器:didFinishPickingMediaWithInfo缺少UIImagePickerControllerOriginalImage?

时间:2010-07-07 15:36:00

标签: iphone ios-simulator uiimagepickercontroller ios4

我有一个简单的UIImagePickerController试图抓住原始选定的图像:

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模拟器时,info集合仅包含:

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之前,这工作正常。我没有警告等。

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

2 个答案:

答案 0 :(得分:3)

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

如果我找到解决方案(现在正在处理)将发布。

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

答案 1 :(得分:0)