Использование этого кода вызывает ошибку шины. Может кто-то указать, что с ним не так? Я переопределяю метод из CALayer.Почему этот кусок кода, разбивающий CGColor, вызывает ошибку шины?
- (void) setBackgroundColor:(CGColorRef)c
{
float *components = (float *)CGColorGetComponents(c);
[super setBackgroundColor:[LOLColors colorWithRed:components[0] green:components[1] blue:components[2] alpha:transparencyLevel]];
}
P.S.colorWithRed: green: blue: alpha - метод класса, который отлично работает.
Это прототип:
+ (CGColorRef) colorWithRed:(float)red green:(float)green blue:(float)blue alpha:(float)alpha
В то время как литье типов значений для других типов (например, 'CGFloat' для' float') никогда не должно быть проблемой, я был бы осторожен при выборе типов указателей на другие типы. Если 'CGFloat' на самом деле не является размером' float', у вас будут серьезные проблемы. – zneak