我在类方法中有以下代码:

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)来解决问题。
有任何想法吗?

最佳答案

您正在创建双重副本。您不应在此处调用CFDataCreateMutableCopy()CGDataProviderCopyData()已经为您完成了复制(如其名称所示)。

10-08 05:32