- [UIDeviceRGBColor red]:无法识别的选择器发送到实例

时间:2013-02-19 15:49:57

标签: objective-c uicolor unrecognized-selector

CGFloat colorR = color.red;

它适用于一些版本,但随后我修改了一些与color无关的代码,并且每次尝试运行它时,该行突然崩溃了,即使在撤消这些更改后也是如此。 / p>

NSLog(@"%@", color.CGColor);
    //<CGColor %p> [<CGColorSpace %p> (kCGColorSpaceDeviceRGB)] ( 0.2 0.5 0.7 1 )
NSLog(@"%f", color.red);
    //-[UIDeviceRGBColor red]: unrecognized selector sent to instance

color.red的可用性和(罕见)正确功能是一个错误吗?

1 个答案:

答案 0 :(得分:1)

-red不是UIColor的公共实例方法。 UIColors可以在任何颜色空间中表示,并且可能涉及一些转换。要从UIColor对象读取原始RGB组件,必须使用以下方法:  - (BOOL)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha

我不知道为什么color.red有时会起作用 - 可能是某些颜色在内部使用该方法使用其中一个类集群实例,有时则以其他格式存储它们。