1

私はiOSにかなり慣れていません。画像の上に描画を追加できる単純なアプリケーションを作成しています。描画している色を変更できます。. . .

しばらく描画した後、iPad シミュレーターで次のエラーが発生します。

CGBitmapContextInfoCreate: unable to allocate 1478400 bytes for bitmap data

これはおよそ 1.5MB です。. . . これはどのように問題になる可能性がありますか? 私は何を間違っていますか?

私のアプリケーションでは、JPEG ファイルの上に描画できます。JPEG ファイル自体はわずか 111 KB です。単一の UIImageView 内で描画しているので、オブジェクトを解放することは問題ではないと思いますか?

どんなガイダンスも大歓迎です

4

1 に答える 1

2

でしかARCサポートを受けられないObjective-Cため、 で記述されていないフレームワークを使用する場合は、メモリ管理を行う必要がありますObjective-C。多くの大きなオブジェクト (1.5 MB のビットマップ コンテキストなど) を作成し、これらのオブジェクトを決して解放しない場合、上記の内容が問題になる可能性があります。

Core Foundation の Memory Management Programming Guide をよく理解しておく必要があります。Copy要点は、単語orを使用して関数を呼び出す場合Create、またはCFRetainCore Foundation スタイルのオブジェクト (つまり、CGContextRef) で (または同様のメソッドを) 呼び出す場合、それを「所有」し、ある時点でペアにするのはあなたの責任です。に電話しCFReleaseて所有権を放棄してください。そうしないと、オブジェクトがいつまでも残ってしまい、最終的にヒープ領域が不足してしまいます。

于 2013-08-11T21:38:57.410 に答える