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的存在!