14

私はこの非常に良いリファレンスを参照しました: https://stackoverflow.com/questions/1282830/uiimagepickercontroller-uiimage-memory-and-moreしかし、私はいくつかの非常に深刻な問題を抱えています. 写真を撮った後、メモリー警告が表示されます。これは私が撮った最初の写真であり、2 番目または 3 番目の写真ではありません。

アプリケーションディレクトリからスクロールビューにロードされた小さなjpegがいくつかあるためかどうか疑問に思っていました。私が考えることができる唯一の解決策は、UIImagePicker がアクティブな間にメインビューのすべてをアンロードし、後ですべてを再度リロードすることですが、それが正しい解決策であるかどうかはわかりません。また、その方法もわかりません。

UIImagePicker はそれほど多くのメモリを使用しますか? 必要な画像を処理または表示することさえまだできていません。画像を捨てても、メモリ警告が表示されます。

どんな助けでも感謝します。

4

3 に答える 3

45

あいまいな声明ではなく、実際の答えをまだ探しているすべての人々は、ここを見てください. 「あなたの記憶を処理する」などの何百もの答えがあることに気付きましたが、それは何も答えません. これが他の誰かに役立つことを願っています...

以下を変更

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    [imageView setImage:image];
    [self dismissModalViewControllerAnimated:YES];
}

次のように、画像を設定する前にモーダルビューを閉じます...

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    [self dismissModalViewControllerAnimated:YES];
    [imageView setImage:image];
}
于 2011-05-05T20:15:51.073 に答える
9

はい、これが起こります。覚えておくべきことは、メモリ警告が表示されても問題ないということです。それはあなたが悪い人であるという意味ではありません。アプリケーションがクラッシュしたり、メモリ警告に反応して混乱したりしないようにする必要があるだけです。

特に、UIViewController のデフォルトのアクションは、ビューが表示されていない場合はビューをアンロードすることであり、フルスクリーンの画像ピッカーが表示されている場合は表示されないことを理解する必要があります。

于 2009-12-02T17:26:42.987 に答える
1

ほとんどの場合、編集されていない画像を使用しており、1400x1300 の完全なサイズで戻ってきます。これは巨大で、アプリをクラッシュさせます。画像のサイズを iPhone ネイティブの 320x480 解像度に変更することをお勧めします。問題を解決する必要があります。

于 2009-12-02T16:35:34.280 に答える