从枚举类型'枚举CGImageAlphaInfo'到不同枚举类型'CGBitmapinfo'(又名''枚举CGBitmapInfo')的隐式转换

时间:2013-09-20 16:36:22

标签: ios enums core-graphics

我正在xCode5上将旧的iOS 5项目转换为iOS6.0,并且大多数警告和错误已经修复但是对于这个。关于如何重写代码以避免编译器警告的任何建议。

#define kBitsPerComponent 8
#define kBitmapInfo       kCGImageAlphaPremultipliedLast

 - (UIImage*)scaleToSize:(CGSize)size :(UIImage *)image
{
CGBitmapInfo bitmapInfo = kBitmapInfo;
size_t bytesPerRow = size.width * 4.0;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, size.width,
                                             size.height, kBitsPerComponent,
                                             bytesPerRow, colorSpace, bitmapInfo);

CGRect rect = CGRectMake(0.0f, 0.0f, size.width, size.height);
CGContextDrawImage(context, rect, image.CGImage);

CGImageRef scaledImageRef = CGBitmapContextCreateImage(context);
UIImage* scaledImage = [UIImage imageWithCGImage:scaledImageRef];

CGImageRelease(scaledImageRef);
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);

return scaledImage;
}

代码提供警告隐式转换从枚举类型'枚举CGImageAlphaInfo'到不同的枚举类型'CGBitmapinfo'(又名)'枚举CGBitmapInfo')

如果有人可以帮助修改代码,

将非常感激。

1 个答案:

答案 0 :(得分:117)

来自文档:

  

用于指定alpha通道信息的常量使用CGImageAlphaInfo类型声明,但可以安全地传递给此参数。

所以你可以使用强制转换来抑制警告:

CGBitmapInfo bitmapInfo = (CGBitmapInfo) kBitmapInfo;