0

CGFloat colorR = color.red;

いくつかのビルドでは機能しましたが、その後、関係のないコードを変更し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バグの可用性と(まれな)正しい機能はありますか?

4

1 に答える 1

1

-redは、UIColorのパブリックインスタンスメソッドではありません。UIColorsは任意の色空間で表すことができ、変換が必要になる場合があります。UIColorオブジェクトから生のRGBコンポーネントを読み取るには、次のメソッドを使用する必要があります。 - (BOOL)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha

color.redが機能する理由がわかりません。特定の色が、そのメソッドで内部的にクラスクラスターインスタンスの1つを使用している場合と、別の形式で保存されている場合があります。

于 2013-02-19T15:54:08.387 に答える