CGColorGetComponents()返回什么?

Joe*_*ppo 8 iphone cocoa-touch core-graphics cgcolor uicolor

CGFloat* colors = CGColorGetComponents(hsbaColor.CGColor);
Run Code Online (Sandbox Code Playgroud)

这会返回浮点数还是浮点数组?看起来星号是创建数组的简写.那是对的吗?

当我在HSB UIColor对象的CGColor属性上调用此函数时,它是否将值转换为RGB?

Pet*_*sey 5

CGFloat* colors = CGColorGetComponents(hsbaColor.CGColor);
Run Code Online (Sandbox Code Playgroud)

这会返回浮点数还是浮点数组?看起来星号是创建数组的简写.那是对的吗?

有点.

CGFloat *colors声明一个包含指向至少一个CGFloat的指针的变量.CGColorGetComponents返回一个指向几个CGFloats的指针,一个接一个 - 一个C数组.您接受该指针并将其指定给(将指针放入)colors变量.

声明变量不会创建数组.事实上,两者都没有CGColorGetComponents.无论创建什么CGColor对象都创建了数组并将其存储在对象中; CGColorGetComponents让你拥有指向该存储的指针.

声明CGFloat *colors变量只创建一个位置 - 变量 - 用于存储指向一个或多个CGFloats的指针.变量中的东西是指针,指针处的东西是数组.

如果仍然不清楚,请参阅C中有关指针的所有信息.


hbw*_*hbw 4

是的,它返回一个数组CGFloats. 具体来说,它返回“与指定颜色关联的颜色分量(包括 alpha)的强度值数组”。

返回的颜色分量取决于传递的颜色空间CGColorRef使用的颜色空间。

更多信息可以在CGColor 文档中找到。