2012-04-16 167 views
9

我正在創建一個使用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

回答

0

嘗試這種在實際設備

 - (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

0

我不知道那可是對臨時選項的問題,

imagePicker.allowsEditing = YES;

這會給你圖像UIImagePickerControllerOriginalImage,

我知道它沒有辦法的辦法,但...

+0

對不起,這不適用於iPad模擬器(這是問題的關鍵):( – ripegooseberry 2014-11-17 15:46:53

相關問題