Cocoa CGColorRef不兼容的指针类型传递浮点[4]';至类型为'的参数;常数CGFloat*';(又名双常数*';)
我得到了这个错误:Cocoa CGColorRef不兼容的指针类型传递浮点[4]';至类型为'的参数;常数CGFloat*';(又名双常数*';),cocoa,cgfloat,Cocoa,Cgfloat,我得到了这个错误: my color = CGColorCreate(colorSpace, fillComponents); variable: incompatible pointer types passing 'float [4]' to parameter of type 'const CGFloat *' (aka 'const double *'). 我如何解决这个问题 CGColorRef color; //retrieve some usefull rects NSRec
my color = CGColorCreate(colorSpace, fillComponents); variable: incompatible pointer types passing 'float [4]' to parameter of type 'const CGFloat *' (aka 'const double *').
我如何解决这个问题
CGColorRef color;
//retrieve some usefull rects
NSRect frame = [self frame];
NSRect imageFrame = [self imageFrame];
NSRect relativeImageFrame = NSMakeRect(imageFrame.origin.x - frame.origin.x, imageFrame.origin.y - frame.origin.y, imageFrame.size.width, imageFrame.size.height);
/* place holder layer */
if(type == IKImageBrowserCellPlaceHolderLayer){
//create a place holder layer
CALayer *layer = [CALayer layer];
layer.frame = CGRectMake(0, 0, frame.size.width, frame.size.height);
CALayer *placeHolderLayer = [CALayer layer];
placeHolderLayer.frame = *(CGRect*) &relativeImageFrame;
float fillComponents[4] = {1.0, 1.0, 1.0, 0.3};
float strokeComponents[4] = {1.0, 1.0, 1.0, 0.9};
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
//set a background color
color = CGColorCreate(colorSpace, fillComponents);
[placeHolderLayer setBackgroundColor:color];
CFRelease(color);
//set a stroke color
color = CGColorCreate(colorSpace, strokeComponents);
[placeHolderLayer setBorderColor:color];
CFRelease(color);
[placeHolderLayer setBorderWidth:2.0];
[placeHolderLayer setCornerRadius:0];
CFRelease(colorSpace);
[layer addSublayer:placeHolderLayer];
return layer;
}
如果您按照错误消息中的建议定义填充/笔划组件,它应该可以工作:
const CGFloat *components = {1.0, 1.0, 1.0, 0.3};
谢谢,完全忘记了CGFloat的存在!