CGDataProviderCopyData保留数据

时间:2016-03-18 17:38:51

标签: ios memory-management core-graphics core-foundation

仪器显示我使用CGDataProviderCopyData创建了大量持久分配。

我正在调用CGDataProviderCopyData,然后使用CFRelease释放数据引用。我使用UInt8指向CFDataGetBytePtr的数据。

此代码在UIImaveView类别中完成

    CGImageRef imageRef = self.image.CGImage;

    CGDataProviderRef provider = CGImageGetDataProvider(imageRef);
    CFDataRef pixelData = CGDataProviderCopyData(provider);
    const UInt8* data = CFDataGetBytePtr(pixelData);

    // do stuff with data...

    CFRelease(pixelData);

如果我使用CFRelease,我不确定为什么要保留pixelData。

1 个答案:

答案 0 :(得分:0)

您应该释放提供者:

CGDataProviderRelease(provider);