在
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; }