Передача аргумента 1 из 'setBackgroundColor:' из несовместимого типа указателя - PullRequest
2 голосов
/ 21 июля 2011
- (void)drawRect:(CGRect)rect {
    // Drawing code.

    // BackgroundColor
    CALayer *myLayer = [self layer];    
    [myLayer setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5].CGColor];
    ...
}

когда я хочу установитьBackgroundColor для слоя, появилось предупреждение. Но код работает нормально.

=============================================== ============

Лучший ответ: #import <QuartzCore/QuartzCore.h>

Ответы [ 3 ]

4 голосов
/ 21 июля 2011

Если вы не включите Quartz в свой модуль, то компилятор не знает о CGColor как типе и выдает предупреждение.

Поместите #import <QuartzCore/QuartzCore.h> в заголовок, и оно должно удалить предупреждение.

Надеюсь, это поможет,

Dave

1 голос
/ 21 июля 2011

Свойство backgroundColor для CALayer имеет тип CGColorRef, который является типом возврата свойства CGColor для UIColor, поэтому код выглядит хорошо.

Попробуйте сделать это вместо:

[myLayer setBackgroundColor:[[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5] CGColor]];
0 голосов
/ 21 июля 2011

Удалите преобразование CGColor из команды и запишите его как:

[myLayer setBackgroundColor:(id)[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5].CGColor];

извините ... попробуйте эту обновленную версию

...