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



嗨,在应用程序中使用路线方向在谷歌地图,我需要更新路线,而更新它的显示一些警告,如。

从枚举类型"enum CGImageAlphaInfo"隐式转换为不同的枚举类型'CGBitmapinfo' (aka)enum CGBitmapInfo)

这是我的代码。

     -(void) updateRouteView {
         CGContextRef context =     CGBitmapContextCreate(nil,
                                              routeView.frame.size.width,
                                              routeView.frame.size.height,
                                              8,
                                              4 * routeView.frame.size.width,
                                              CGColorSpaceCreateDeviceRGB(),
                                              kCGImageAlphaPremultipliedLast);
       CGContextSetStrokeColorWithColor(context, lineColor.CGColor);
       CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1.0);
       CGContextSetLineWidth(context, 3.0);
  }

在上面这一行中,它显示了警告。

kCGImageAlphaPremultipliedLast);

上面一行显示了警告,请告诉我如何解决这个问题。

谢谢。

CGBitmapContextCreate语法

CGContextRef CGBitmapContextCreate (
   void *data,
   size_t width,
   size_t height,
   size_t bitsPerComponent,
   size_t bytesPerRow,
   CGColorSpaceRef colorspace,
   CGBitmapInfo bitmapInfo
);

看最后一个属于CGBitmapInfo的参数。但你用的是属于CGImageAlphaInfokCGImageAlphaPremultipliedLast。将type转换为CGBitmapInfo

更新代码

CGContextRef context =CGBitmapContextCreate(nil,routeView.frame.size.width, routeView.frame.size.height,8,4 * routeView.frame.size.width, CGColorSpaceCreateDeviceRGB(), kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedLast);

我刚刚添加了"(CGBitmapInfo)",它工作

-(void) updateRouteView {
         CGContextRef context =     CGBitmapContextCreate(nil,
                                              routeView.frame.size.width,
                                              routeView.frame.size.height,
                                              8,
                                              4 * routeView.frame.size.width,
                                              CGColorSpaceCreateDeviceRGB(),
                                              (CGBitmapInfo)kCGImageAlphaPremultipliedLast);
       CGContextSetStrokeColorWithColor(context, lineColor.CGColor);
       CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1.0);
       CGContextSetLineWidth(context, 3.0);
  }

最新更新