2014-02-03 3 views
0

Я получаю эту ошибку: какао CGColorRef типа несовместим указатель прохождения поплавка [4] для параметра типа 'сопзЬ CGFloat *' (он же 'Const двойной *')

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; 
} 

ответ

1

Если вы определяете компоненты заливки/обводки, как предложено в сообщении об ошибке, он должен работать:

const CGFloat *components = {1.0, 1.0, 1.0, 0.3}; 
+0

Спасибо, совершенно забыл о существовании CGFloat! – spacecash21

Смежные вопросы