【问题标题】:CGDataProviderCopyData retaining dataCGDataProviderCopyData 保留数据
【发布时间】:2016-07-05 14:12:52
【问题描述】:

仪器显示我有很多使用 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。

【问题讨论】:

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


    【解决方案1】:

    你应该释放提供者:

    CGDataProviderRelease(provider);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-22
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-24
      • 2020-02-06
      相关资源
      最近更新 更多