2014-06-20 52 views
6

對象的Xcode下運行我的代碼的潛在泄漏分析我已經跌進以下塊存入CGImageRef

- (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會抱怨有潛在的內存泄漏:

enter image description here

什麼正在進行?我將如何去修復它?

回答

9

下面看起來像是一個修復,仍然不確定這是否是處理保留引用的最佳方法?

- (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; 
} 
+0

這是最好的方法。我可以:D – 3329