I'm trying to get RGB values from a UIColor object.
If I do the following on a UIColor object it works
UIColor *top = [UIColor lightGrayColor];
const CGFloat* colorsTop = 0;
colorsTop = CGColorGetComponents(top.CGColor);
Top comes out as: UICachedDeviceRGBColor * 0x7a7d5b50
However, if I do the following it fails. Can someone please explain why?
UIColor *top = [UIColor colorWithRed:1 green:1 blue:1 alpha:1];
const CGFloat* colorsTop = 0;
colorsTop = CGColorGetComponents(top.CGColor);
Top comes out as: UIColor * 0x7a7d5cb0
I'm getting error on the last one: EXC_BAD_ACCESS (code=1, 0xb7a7d5b9)
To get the RGB components of a UIColor
you should be using this method...
- (BOOL)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha
Like this...
CGFloat red = 0;
CGFloat green = 0;
CGFloat blue = 0;
CGFloat alpha = 0;
[someUIColor getRed:&red green:&green blue:&blue alpha:&alpha];
red
, green
, blue
, and alpha
will now contain the values of that colour.