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
的可用性和(罕见)正确功能是一个错误吗?
答案 0 :(得分:1)
-red不是UIColor的公共实例方法。 UIColors可以在任何颜色空间中表示,并且可能涉及一些转换。要从UIColor对象读取原始RGB组件,必须使用以下方法:
- (BOOL)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha
我不知道为什么color.red有时会起作用 - 可能是某些颜色在内部使用该方法使用其中一个类集群实例,有时则以其他格式存储它们。