在 Xcode Analyze 下运行我的代码我无意中遇到了以下 block
- (UIImage *)imageWithFilter:(CIFilter *)filter
{
CIContext *ctx = [CIContext contextWithOptions:nil];
CGImageRef imageRef = [ctx createCGImage:filter.outputImage fromRect:CGRectMake(0, 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, 0, self.size.width, self.size.height)];
UIImage *image = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
return image;
}
关于ios - 存储在 CGImageRef 中的对象的潜在泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24325746/