2012-05-06 57 views
1

我已經啓用ARC和我想要做的事:IOS鑄造objc指向struct cgcolorref

CGColorRef outerColor = (id)[UIColor colorWithWhite:1.0 alpha:1.0].CGColor; 

我試圖投導致錯誤:

Implicit conversion of an Objective-C pointer to 'CGColorRef' (aka 'struct CGColor *') is disallowed with ARC 

我已經嘗試了數的東西,但我不知道如何完成這個演員。

+1

不能你只是刪除(ID)投? – giorashc

回答

3

您需要橋接模型以便ARC能夠理解您正在做什麼以及如何對其做出反應。查看這個問題的答案:ARC and bridged cast

0

(發表回覆代表OP)

我加入outerColor到一個數組,所以我這樣做:

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];