我使用的是支持ARc的iOS5。所以在下面的例子中,我得到了内存泄漏的warning...but,因为使用了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]];
}我不能使用[CIContext Autorelease];问题是显示CIContext“方法返回一个具有+1保留计数的核心基础对象”。
请提个建议。
发布于 2011-12-23 18:51:50
-createCGImage:…返回一个核心图形对象,它不是Objective-C对象,也不会由ARC管理。因此您必须手动对其执行CGImageRelease:
CGImageRef cgImage = [context createCGImage:outputImage
fromRect:outputImage.extent];
blurImage.image = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);但是为什么不直接使用+imageWithCIImage:呢?
blurImage.image = [UIImage imageWithCIImage:outputImage];https://stackoverflow.com/questions/8615090
复制相似问题