我有两个UIColor实例,想要使用它们来创建渐变。代码有效,但是当我调用arrayWithObject:
构造函数时,它会给我一个警告:
警告:语义问题:不兼容 指针类型发送'CGColorRef' (又名'struct CGColor *')参数 类型'id'
我怀疑存在与警告相关的其他问题(例如泄漏)。这是片段:
UIColor *startColor, *endColor;
// ...
NSArray *colors = [NSArray arrayWithObjects:
startColor.CGColor, endColor.CGColor, nil];
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace,
(CFArrayRef) colors, NULL);
如何重写代码以安全方式摆脱此警告?
CGFloat components[]
答案 0 :(得分:24)
试试这个
UIColor *startColor, *endColor;
// ...
NSArray *colors = [NSArray arrayWithObjects:
(id)startColor.CGColor, (id)endColor.CGColor, nil];
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace,
(CFArrayRef) colors, NULL);