2013-02-19 36 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

相關問題