2016-10-31 7 views
2

この問題が発生しました。私はいつものようにUIImagePickerControllerを呼び出すことができますが、画像(写真や写真ライブラリを撮る)を選択すると、「写真を使用する」ボタンと「取り戻す」ボタンは機能せず、UIはフリーズします。Xcode 8 UIImagePickerControllerフリーズ

私はデバッグをいくつか行い、コードがデリゲートメソッドに入り込まないことがわかりました。

私はUIImagePickerControllerに関するコードを変更しませんでした。以前はすべてうまく動作します。だからなぜこれが起こったのか、このバグを修正する方法が不思議です。

ありがとうございます!ここで

コードです:

UIImagePickerController * imgPicker = [[UIImagePickerController alloc] init]; 
[imgPicker setDelegate:self] 
[imgPicker setAllowsEditing:YES]; 
[imgPicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
[self.navigationController presentViewController:imgPicker animated:YES completion:^{ 

      }]; 

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(nullable NSDictionary<NSString *,id> *)editingInfo { 

    [self dismissViewControllerAnimated:YES completion:^{ 
    }]; 
} 
+0

へのアクセスを必要と私はまた、このコンソールで 警告が表示されます。これにより利用可能な型情報の品質が大幅に低下します。 レンダリングされていないビューをスナップショットすると、空のスナップショットが作成されます。画面の更新後にスナップショットまたはスナップショットを作成する前に、ビューが少なくとも1回レンダリングされていることを確認してください。 –

+0

の場合は、ターゲットplistファイルにNSPhotoLibraryUsageDescription文字列を設定しているかどうかを確認してください。 – protuberian

+0

ご意見ありがとうございます。クラッシュする可能性があります。 –

答えて

1

私はこのout.Thisは私が使っていたmethod.the 1は、を廃止されました間違ったデリゲートを使用することによって引き起こされ把握します。

dictionary.Youは、このように画像を取得することができます私たちは、この1

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info;

を使用する必要がありますし、画像情報は情報であり、IOSとXcodeの8から

UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

1

10あなたはUIImagepickerコントローラを使用して写真にアクセスするためのinfo.plistにいくつかの重要な価値を追加する必要があります

キー:プライバシー - フォトライブラリの使い方の説明
値:任意のObjective-Cのクラス情報を読み込むことができませんでした:このアプリは、写真のライブラリ