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.

Was it helpful?

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
scroll top