小编Tak*_*ara的帖子

如何减少CFData(存储)?

我一直在寻找解决方案来解决下面的问题,但找不到.我做了过滤方法来修改HSVUIImage.这种方法工作正常,但是当我使用这种方法时,使用的内存会长大,无法释放.在Instruments的"Live Bytes"框中,我发现CFData(store)的值为每次过滤增加了几MB.我怎么才能释放他们?我发现了类似的问题,但对这个问题不太好.谢谢.

//Objective-C
- (UIImage*)addFilter:(UIImage*)img{
    CGImageRef imgRef = img.CGImage;

    //getting size
    size_t width = CGImageGetWidth(imgRef);
    size_t height = CGImageGetHeight(imgRef);
    size_t bitsPerComponent = CGImageGetBitsPerComponent(imgRef);
    size_t bitsPerPixel = CGImageGetBitsPerPixel(imgRef);
    size_t bytesPerRow = CGImageGetBytesPerRow(imgRef);


    CGColorSpaceRef colorSpace = CGImageGetColorSpace(imgRef);
    CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(imgRef);
    bool shouldInterpolate = CGImageGetShouldInterpolate(imgRef);
    CGColorRenderingIntent renderingIntent = CGImageGetRenderingIntent(imgRef);
    CGDataProviderRef dataProvider = CGImageGetDataProvider(imgRef);
    CFMutableDataRef *data = CGDataProviderCopyData(dataProvider);
    UInt8 *buf = (UInt8 *)CFDataGetMutableBytePtr(data);


    double h,s,v;
    double c;
    double cmax,cmin;
    for (int j = 0; j < height; …
Run Code Online (Sandbox Code Playgroud)

memory iphone memory-leaks uiimage cfdata

6
推荐指数
0
解决办法
341
查看次数

标签 统计

cfdata ×1

iphone ×1

memory ×1

memory-leaks ×1

uiimage ×1