2

デバイス ギャラリーから写真を選択して UIImage に設定しようとしていますが、ユーザーがライブラリから写真を選択するとデバイスがクラッシュします。

クラッシュログは次のとおりです。

Notice: Formulating crash report for process [7997]

Aug  8 10:16:36 iPad ReportCrash[8000] <Error>: libMobileGestalt copySystemVersionDictionaryValue: Could not lookup ReleaseType from system version dictionary

Aug  8 10:16:36 iPad com.apple.launchd[1]
(UIKitApplication:[0x8dd8][7997]) <Warning>:
(UIKitApplication:[0x8dd8]) Job appears to have
crashed: Trace/BPT trap: 5

Aug  8 10:16:36 iPad backboardd[26] <Warning>: Application
'UIKitApplication:[0x8dd8]' exited abnormally with signal 5: Trace/BPT
trap: 5

ここに私のコードがあります:

-(IBAction)btnSelecionarFotoClick:(id)sender {
    if([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypePhotoLibrary])  {
        inserindoFoto = YES;
        UIImagePickerController *picker= [[UIImagePickerController alloc]init];
        picker.delegate = self;
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        [self presentViewController:picker animated:YES completion:nil];
        [picker release];
    }
}

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage : (UIImage *)image editingInfo:(NSDictionary *)editingInfo  {
    NSData *dataObj = nil;
    if (image) {
        dataObj = UIImageJPEGRepresentation(image, 1.0);
    }

    if (imgUsuario.image) {
        imgUsuario.image = nil;
        [imgUsuario.image release];
    }
    imgUsuario.contentMode = UIViewContentModeScaleAspectFill;
    imgUsuario.image = image;
    [imgUsuario.layer setCornerRadius:5];
    imgUsuario.layer.masksToBounds = YES;
    [self dismissViewControllerAnimated:NO completion:nil];
    inserindoFoto = NO;
}

編集

画像を選択せず​​にキャンセルすると、クラッシュします:

-(void)imagePickerControllerDidCancel:(UIImagePickerController *) picker
{
    [self dismissViewControllerAnimated:NO completion:nil];
}

私は問題を見つけました:

autoLayoutを無効にすると機能します...しかし、autoLayoutを使用する必要があります

4

2 に答える 2

2

Apple のドキュメントにはUIImagePickerControllerSourceTypePhotoLibrary、iPad 用の を使用している場合は、ポップオーバー コントローラーを使用する必要があると記載されています。モーダルで全画面表示しているため、問題が発生している可能性があります。

UIImagePickerController リファレンス

于 2013-08-08T14:03:03.913 に答える
1

これを info.plist に追加します

カメラの場合:

キー: プライバシー - カメラの使用説明
値: $(PRODUCT_NAME) カメラの使用

フォト ライブラリの場合:

キー : プライバシー - 写真ライブラリの使用説明
値 : $(PRODUCT_NAME) 写真の使用

于 2016-12-14T10:10:30.133 に答える