2013-02-19 74 views
0

CGFloat colorR = color.red;- [UIDeviceRGBColor红]:无法识别的选择发送到实例

它工作了几年建立,但后来我修改有无关color,突然该行每次我试图崩溃我的应用程序的一些代码即使在撤销这些更改之后,也可以通过它。

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

-red对于UIColor没有公共实例方法。 UIColors可以在任何色彩空间中呈现,并且可能涉及一些转换。若要从对象的UIColor读取原始RGB分量必须使用方法: - (BOOL)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha

我不知道为什么有时候color.red工作 - 它可能是某些颜色使用该类群集实例的一个内部与方法和其他时间以另一种格式存储。

+0

因此,为'color.red'获得一个浮点数肯定是一个错误?但是为什么我允许尝试? – Thromordyn 2013-02-19 15:57:10

+0

@Thromordyn在你的代码中是的:)不是一个苹果的错误,因为界面从来没有公开 – 2013-02-19 15:58:04

+0

'UIColor-Expanded'允许'color.red',但我想我插错了。你的选择需要所有的一行,所以我会坚持。 – Thromordyn 2013-02-19 16:10:36

相关问题