9

ユーザーがフォトライブラリから画像を選択するためにUIImagePickerControllerを使用するiPhoneアプリを作成しています。

ピッカーを使用すると、フォトライブラリから画像を正常に取得できます。

  • iPhonesumulator
  • 5.0.1を実行している実際のiPhone
  • 5.0.1を実行している実際のiPad
  • 5.1を実行している実際のiPad
  • iPadシミュレーターv4.3

しかし、このアプリを次のようにテストすると、ピッカーは画像を取得できません。

  • iPadシミュレーターv5.0
  • iPadシミュレーターv5.1

これらの2つのテスト環境では、イメージピッカーが正常に表示されます。必要な画像をタップしても、「 [info objectForKey: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が欠落していることがわかります。これが私だけなのかわかりませんか?

注:iOS5SDKでXcode4.3.2を使用しています

注2:画像を取得するためにAssetsLibraryフレームワークを使用していません。

注3(2012年8月2日追加):MountainLionがインストールされたXcode4.4にアップグレードしました。同じ問題がまだ存在します。しかし、iPad Simulator v5.0で実行すると、新しいエラーメッセージが表示されるようになりました(iPad Simulator v5.1で実行すると、エラーメッセージは表示されません)。エラーメッセージには、「名前付きサービス'com.apple.PersistentURLTranslator.Gatekeeper'が見つかりません」と表示されます。資産がダウンしているか、正しく構成されていません。物事はあなたが期待するようには機能しません。

注4(2012年11月25日追加):Xcode 4.5.2を使用しても、この問題はiPadシミュレーター5.0、5.1、および6.0に引き続き存在します。

注5(2012年3月6日追加):Xcode 4.6を使用すると、この問題はiPadシミュレーターのすべてのバージョンで引き続き発生します。

4

2 に答える 2

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];


 }
于 2012-04-16T16:22:54.440 に答える
0

その問題はわかりませんが、一時的なオプションで、

imagePicker.allowsEditing = YES;

これにより、UIImagePickerControllerOriginalImage の画像が得られます。

私はその方法ではないことを知っていますが...

于 2013-03-06T08:55:41.527 に答える