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.

Était-ce utile?

La 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

Autres conseils

(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];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top