1

クラスメソッドに次のコードがあります。

CFMutableDataRef pixelData = CFDataCreateMutableCopy(0, 0,
CGDataProviderCopyData(CGImageGetDataProvider(image.CGImage)));

UInt8 const *data = (UInt8 *)CFDataGetMutableBytePtr(pixelData);
int pixelInfo = ((image.size.width * scale * point.y) + point.x ) * 4;
UInt8 alpha = data[pixelInfo + 3];
CFRelease(pixelData);

XCode で分析を行うと、このメソッドの最後に「オブジェクトの潜在的なリーク」が表示されます。pixelData をリリースしたので、リークがどこにあるのかわかりません。インストルメンテーションを使用すると、CGDataProviderCopyData が原因でリークが発生します。他の場所で読んだように、問題は CFRelease(pixelData); を呼び出して解決する必要があります。何か案は?

4

2 に答える 2

3

二重コピーを作成しています。ここに電話してはいけませんCFDataCreateMutableCopy()CGDataProviderCopyData()すでにコピーを行っています (その名前にあるように)。

于 2013-06-04T22:14:34.713 に答える