更改滑块值以更改图像强度(coreImage)时如何避免"收到内存警告"?

abh*_*bhi 2 iphone ios ios5 ios6

我正在尝试实现一种根据滑块值更改图像色调的方法,但是当我连续更改滑块值时,它会显示内存警告并且应用程序崩溃.

这是我的示例代码,我尝试使用dispatch_async

-(void)valueChanged
{
    float slideValue = slider.value;
    NSLog(@"%0.f",slideValue);

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0.5), ^{

    dispatch_async(dispatch_get_main_queue(), ^{
            [filter setValue:@(slideValue)
                      forKey:@"inputIntensity"];
            CIImage *outputImage = [filter outputImage];


            CGImageRef cgimg = [context createCGImage:outputImage
                                             fromRect:[outputImage extent]];

            UIImage *newImage = [UIImage imageWithCGImage:cgimg];
            imageView.image = newImage;


       });

    });

}
Run Code Online (Sandbox Code Playgroud)

Ant*_* MG 7

你正在泄漏内存,这意味着你正在分配你没有释放的对象,因此也就是内存警告.

您是否尝试在使用后释放图像?

CGImageRelease(cgimg)
Run Code Online (Sandbox Code Playgroud)

在方法的最后