如果我运行以下代码:
CGColorRef cgcolor = [[UIColor whiteColor] CGColor];
int numComponents = CGColorGetNumberOfComponents(cgcolor);
CGFloat red = 0, green = 0, blue = 0;
if (numComponents >= 3)
{
const CGFloat *components = CGColorGetComponents(cgcolor);
red = components[0];
green = components[1];
blue = components[2];
}
红色,绿色和蓝色的NSLog每个返回0;但是,如果我给它任何其他颜色,它会显示我想要显示的颜色。
为什么会这样?
答案 0 :(得分:3)
白色和黑色等颜色使用单色空间(黑/白,alpha)表示,而不是(红,绿,蓝)。 NSLog
的{{1}}会返回numComponents
,因此您的2
块永远不会被执行。