bitmapData
必要があれば、それを解放しないでください。必要がない場合は、パラメータとしてNULL
を渡し、Quartzはメモリ自体を割り当てます(iOS 4.0以降)。
データ:描画がレンダリングされるメモリ内の宛先へのポインタ。このメモリブロックのサイズは少なくとも(bytesPerRow * height)バイトでなければなりません。 iOS 4.0以降およびMac OS X v10.6以降では、Quartzがビットマップにメモリを割り当てるようにする場合は、NULLを渡すことができます。これにより、自分自身のメモリを管理することがなくなり、メモリリークの問題が軽減されます。
クォーツはbitmapData
をコピーしませんが、そこにレンダリングします。 context
をリリースしたら、そのメモリを解放する必要があります。
編集:アップルのサンプルprojectsの一つでは、メモリが解放され、即時ではありませんがされています
float drawStage3(CGContextRef context, CGRect rect)
{
// ...
cachedData = malloc((((ScaledToWidth * 32) + 7)/8) * ScaledToHeight);
// ...
bitmapContext = CGBitmapContextCreate(cachedData /* data */,
// ...
CFRelease(bitmapContext);
// ...
// Clean up
CFRelease(cachedImage);
free(cachedData);
}
出典
2012-02-25 13:35:14
sch
+1を渡してNULLを渡すポイントを更新します。 – bryanmac