ios – 存储在CGImageRef中的对象的潜在泄漏

前端之家收集整理的这篇文章主要介绍了ios – 存储在CGImageRef中的对象的潜在泄漏前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Xcode Analyze下运行我的代码我偶然发现了以下块
- (UIImage *)imageWithFilter:(CIFilter *)filter
{
    CIContext *ctx = [CIContext contextWithOptions:nil];
    CGImageRef imageRef = [ctx createCGImage:filter.outputImage fromRect:CGRectMake(0,self.size.width,self.size.height)];
    return [UIImage imageWithCGImage:imageRef];
}

Xcode抱怨潜在的内存泄漏:

到底是怎么回事?我该怎么做呢?

解决方法

以下看起来像一个修复程序,仍然不确定这是否是保留引用处理此方法的最佳方法
- (UIImage *)imageWithFilter:(CIFilter *)filter
{
    CIContext *ctx = [CIContext contextWithOptions:nil];
    CGImageRef imageRef = [ctx createCGImage:filter.outputImage fromRect:CGRectMake(0,self.size.height)];
    UIImage *image = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    return image;
}

猜你在找的iOS相关文章