对象的潜在泄漏 - Xcode - ios5

Ran*_*Roy 1 iphone ios ios5

我正在使用ios 5和ARc启用.所以在下面的例子中我得到内存泄漏警告......但是因为使用ARC,我不能使用自动释放.有人建议吗?

  -(void)coreImageEffect{
    CIImage *inputImage = [[CIImage alloc] initWithImage:blurImage.image];
    CIFilter *hueAdjust = [CIFilter filterWithName:@"CIHueAdjust"];

    [hueAdjust setDefaults];
    [hueAdjust setValue:inputImage forKey:@"inputImage"];
    [hueAdjust setValue:[NSNumber numberWithFloat: 3.4f]
    forKey:@"inputAngle"];

    CIImage *outputImage = [hueAdjust valueForKey:@"outputImage"];
    CIContext *context = [CIContext contextWithOptions:nil];

    blurImage.image = [UIImage imageWithCGImage:
    [context createCGImage:outputImage
    fromRect:outputImage.extent]];

    }
Run Code Online (Sandbox Code Playgroud)

我不能用[CIContext Autorelease]; 问题是显示CIContext"Method返回一个带有+1保留计数的核心基础对象"

请建议.

ken*_*ytm 11

-createCGImage:…返回一个Core Graphics对象,该对象不是Objective-C对象,不会由ARC管理.所以你必须手动CGImageRelease它:

CGImageRef cgImage = [context createCGImage:outputImage
                                   fromRect:outputImage.extent];
blurImage.image = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
Run Code Online (Sandbox Code Playgroud)

但为什么不+imageWithCIImage:直接使用?

blurImage.image = [UIImage imageWithCIImage:outputImage];
Run Code Online (Sandbox Code Playgroud)