7

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

これは、コンソールログから取得したものです

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

ピッカーのコード

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

私はすでにすべてのデリゲートを実装して試しましたが、デリゲートを呼び出していません。

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

4

2 に答える 2

2

デバイスのメモリが不足しているようです。システムは大量の「メモリ不足」通知を送信し、アプリもそれを受け取りました。その結果、アプリは最初に UIImagePickerControllerを起動した UIViewController をリリースしました。

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

このケースは、didReceiveMemoryWarning メソッドをすべての UIViewController に実装し、呼び出された場合はログに記録することで確認できます。

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

私のお気に入りのバグの 1 つ。見逃しやすい:)

于 2013-02-06T16:51:58.407 に答える
1

これは iOS のバグのようです。

https://feedbackassistant.apple.com/でフィードバックを送信してください。

于 2013-01-17T18:23:55.373 に答える