嗨,在应用程序中使用路线方向在谷歌地图,我需要更新路线,而更新它的显示一些警告,如。
从枚举类型"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
的参数。但你用的是属于CGImageAlphaInfo
的kCGImageAlphaPremultipliedLast
。将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);
}