7

私はUIImagePickerControllerを使用してネイティブcamer inorderを使用して写真をクリックしていますが、デバイスのフォトギャラリーがいっぱいになったときはアプリを持っています。 「写真を撮ることができません - 写真を撮るには十分な空き容量がありません。設定でストレージを管理できます」という警告メッセージが表示されます。 「完了」ボタンまたは「設定」ボタンをクリックする2つのオプションがあります。どちらかをクリックすると何もせず、アプリは完全にフリーズします。iOSのシステム警告メッセージを処理するにはどうすればよいですか?

これは私が実装したピッカー

UIImagePickerController *mediaPicker = [[UIImagePickerController alloc] init]; 
mediaPicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
mediaPicker.delegate=self; 
mediaPicker.sourceType=UIImagePickerControllerSourceTypeCamera; 
[self presentModalViewController:mediaPicker animated:YES]; 

用コンソールログ

Not enough space to take a picture. Available space is 0 

コードから取得し、すべて既に代表者およびその任意のデリゲートを呼び出していないを試みたものです。

リスナーを使用してこのエラーが発生したときに検出し、前の画面に戻すことができる方法はありますか?

+0

[UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]を実行するとどうなりますか? – lottscarson

答えて

1

これはiOSのバグのようですが、レーダーhereを提出する必要があります。

2

あなたのデバイスのようなサウンドがメモリ不足になると、システムはたくさんの "メモリ不足"通知を送信し、あなたのアプリケーションも1つを取得しました。結果あなたのアプリはUUImagePickerControllerを最初に起動したUIViewControllerをリリースしました。

これで、完了/設定ボタンでimagePickerを終了すると、コントロールはアプリケーションに戻ります。古いUIViewControllerはもう存在しません。この種の状況では、最初からUIViewControllerを再作成するコードを実装していません。デバイスはフリーズしているように見えますが、アプリによってUIが再描画されなかったためです。それ以外のアプリはうまく動作します。

それを呼び出している場合は、すべてののUIViewControllerとログへdidReceiveMemoryWarningメソッドを実装することで、このケースを確認することができます。私のお気に入りのバグの

- (void)didReceiveMemoryWarning 
{ 
    NSLog(@"%@", [self description]); 
    [super didReceiveMemoryWarning]; 
} 

一つ。見逃しやすい:)

関連する問題