iPad模拟器无法在iPhone应用程序中使用UIImagePickerController

问题描述:

我正在创建一个使用UIImagePickerController的iPhone应用程序,供用户从照片库中选择图像。iPad模拟器无法在iPhone应用程序中使用UIImagePickerController

拣出器可以让我顺利拿到从照片库中的图像:

  • iPhone sumulator
  • 真正的iPhone运行5.0.1
  • 真正的iPad上运行5.0.1
  • 真正的iPad运行5.1
  • iPad模拟器v4.3

但选择器未能获得图像,如果我在测试这个程序:

  • 的iPad模拟器V5.0
  • 的iPad模拟器V5.1

在这两个测试环境下,图像拾取成功出现。当我点击我需要的图像时,它只是没有给我任何东西,从“[infoObjectForKey:UIImagePickerControllerOriginalImage]”通过方法“- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

”信息“ 字典就像这样:

{ 
    UIImagePickerControllerMediaType = "public.image"; 
    UIImagePickerControllerReferenceURL = "assets-library://asset/asset.PNG?id=7632C58F-AF74-4EEB-AF17-891E35949CBA&ext=PNG"; 
} 

凡为 ”信息“ 是这样的前5测试环境:

{ 
    UIImagePickerControllerMediaType = "public.image"; 
    UIImagePickerControllerOriginalImage = "<UIImage: 0x6bb7810>"; 
    UIImagePickerControllerReferenceURL = "assets-library://asset/asset.PNG?id=7632C58F-AF74-4EEB-AF17-891E35949CBA&ext=PNG"; 
} 

您可以看到UIImagePickerControllerOriginalImage丢失。我不确定这是否仅仅是我?

注:我使用的Xcode 4.3.2与iOS 5 SDK

注2:我不使用AssetsLibrary框架来获取图像。

注3(2012年8月2日增加):我已经升级到Xcode 4.4并安装了Mountain Lion。同样的问题依然存在。但是现在如果我在iPad模拟器v5.0中运行它,会出现一条新的错误消息(如果我在iPad Simulator v5.1上运行它,则不会显示错误消息)。错误消息说:未找到命名服务'com.apple.PersistentURLTranslator.Gatekeeper'。资产已关闭或配置错误。事情不会像你期望的那样工作。

注4(添加25 /月/ 2012):使用的Xcode 4.5.2,这个问题仍然存在在ipad模拟器5.0,5.1和6.0

注5(加入6 /月/ 2012):使用Xcode 4.6,这个问题在iPad模拟器中仍然存在所有版本。

+0

韦恩嗨,我有同样的问题,在我的应用程序,如果你发现任何解决方案,那么请分享 – iBhavik 2013-03-06 08:10:39

+0

对不起i-bhavik,还没有解决方案。 (我刚刚添加注5) – 2013-03-06 14:14:44

+0

对于临时解决方案,我给出了这个答案。 – iBhavik 2013-03-16 10:31:45

尝试这种在实际设备

 - (IBAction)BrowseImage:(id)sender { 

    if ([UIImagePickerController isSourceTypeAvailable: 
    UIImagePickerControllerSourceTypeSavedPhotosAlbum]) 
{ 
    UIImagePickerController *imagePicker = 
    [[UIImagePickerController alloc] init]; 
    imagePicker.delegate = self; 
    imagePicker.sourceType = 
    UIImagePickerControllerSourceTypePhotoLibrary; 
    imagePicker.mediaTypes = [NSArray arrayWithObjects: 
           (NSString *) kUTTypeImage, 
           nil]; 
    imagePicker.allowsEditing = NO; 
    [self presentModalViewController:imagePicker animated:YES]; 
    //newMedia = NO; 
} 


-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker 
    { 

[self dismissModalViewControllerAnimated:YES]; 


} 
+0

谢谢,你能显示你放在“ - (void)imagePickerController :(UIImagePickerController *)选择器didFinishPickingMediaWithInfo:(NSDictionary *)信息”,因为这是我的问题。 – 2012-04-16 16:50:36

我不知道那可是对临时选项的问题,

imagePicker.allowsEditing = YES;

这会给你图像UIImagePickerControllerOriginalImage,

我知道它没有办法的办法,但...

+0

对不起,这不适用于iPad模拟器(这是问题的关键):( – ripegooseberry 2014-11-17 15:46:53