从枚举types'枚举CGImageAlphaInfo'隐式转换为不同的枚举types'CGBitmapinfo'(又名)'枚举CGBitmapInfo')
我正在将一个旧的iOS 5项目转换为xCode5上的iOS6.0,并且大部分警告和错误已经修复,但是对于这个。 有关如何重写代码以避免编译器警告的任何build议。
#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; }
代码给出了一个警告从枚举types“enum CGImageAlphaInfo”隐式转换为不同的枚举types“CGBitmapinfo”(又名)“enum CGBitmapInfo”)
将不胜感激,如果有人可以帮助如何修改代码。
从文档:
用于指定alpha通道信息的常量使用CGImageAlphaInfotypes声明,但可以安全地传递给此参数。
所以你可以使用一个强制转换来抑制警告:
CGBitmapInfo bitmapInfo = (CGBitmapInfo) kBitmapInfo;