应用程序崩溃使用CGImageRef

时间:2015-02-20 07:24:43

标签: iphone cgimageref

我将使用CGImageRef过滤图像。当我应用" CIPhotoEffectChrome"然后导航到后面的屏幕,我的应用程序将崩溃...并且日志显示为EXC_BAD_ACCESS。

这是代码:::

- (UIImage *)CIPhotoEffectChrome {
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{

        dispatch_async(dispatch_get_main_queue(), ^(void){
        });
    });

    CIContext *context = [CIContext contextWithOptions:nil];               // 1

    CIImage *image = [CIImage imageWithCGImage:self.CGImage];               // 2


    CIFilter *filter = [CIFilter filterWithName:@"CIPhotoEffectChrome"];           // 3

    [filter setValue:image forKey:kCIInputImageKey];

    CIImage *result = [filter valueForKey:kCIOutputImageKey];              // 4

    CGRect extent = [result extent];

    CGImageRef cgImage = [context createCGImage:result fromRect:extent];

    UIImage *filterImage=[UIImage imageWithCGImage:cgImage];

    CGImageRelease(cgImage);

    return filterImage;
}

请帮帮我!!!!!

1 个答案:

答案 0 :(得分:1)

你需要删除CGImageRelease(cgImage)并再次运行,因为我们没有明确地创建它。

在你的情况下,当从当前视图控制器向后移动时发生崩溃,这意味着你通过延迟加载或其他一些Web服务获取图像,因此你应该将委托设置为nil或者如果委托对象被声明为强或保留应该是弱者。