首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Object - Xcode - ios5的潜在泄漏

Object - Xcode - ios5的潜在泄漏
EN

Stack Overflow用户
提问于 2011-12-23 18:45:30
回答 1查看 2.7K关注 0票数 1

我使用的是支持ARc的iOS5。所以在下面的例子中,我得到了内存泄漏的warning...but,因为使用了ARC,我不能使用自动释放。有什么建议吗?

代码语言:javascript
复制
  -(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]];

    }

我不能使用[CIContext Autorelease];问题是显示CIContext“方法返回一个具有+1保留计数的核心基础对象”。

请提个建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-23 18:51:50

-createCGImage:…返回一个核心图形对象,它不是Objective-C对象,也不会由ARC管理。因此您必须手动对其执行CGImageRelease

代码语言:javascript
复制
CGImageRef cgImage = [context createCGImage:outputImage
                                   fromRect:outputImage.extent];
blurImage.image = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);

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

代码语言:javascript
复制
blurImage.image = [UIImage imageWithCIImage:outputImage];
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8615090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档