ios casting objc pointer to struct cgcolorref
-
06-06-2021 - |
Question
I have ARC
enabled and I'm trying to do:
CGColorRef outerColor = (id)[UIColor colorWithWhite:1.0 alpha:1.0].CGColor;
My attempted cast results in the error:
Implicit conversion of an Objective-C pointer to 'CGColorRef' (aka 'struct CGColor *') is disallowed with ARC
I've tried a number of things, but I don't know how to complete this cast.
Solution
You need to bridge the cast so ARC can understand what you are doing and how to react to it. Check the accepted answer of this question out: ARC and bridged cast
OTHER TIPS
(Posted answer on behalf of the OP).
I am adding outerColor
to an array so I did this:
CAGradientLayer *maskLayer = [CAGradientLayer layer];
CGColorRef outerColor = [UIColor colorWithWhite:1.0 alpha:1.0].CGColor;
CGColorRef innerColor = [UIColor colorWithWhite:1.0 alpha:0.0].CGColor;
maskLayer.colors = [NSArray arrayWithObjects:(__bridge id)outerColor,
(__bridge id)innerColor, (__bridge id)innerColor, (__bridge id)outerColor, nil];
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow