だから私はあなたのコードを試しました、
UIColor *color = [UIColor blackColor];
CGFloat red;
CGFloat green;
CGFloat blue;
CGFloat alpha;
BOOL converted = [color getRed:&red green:&green blue:&blue alpha:&alpha];
NSLog(@"Converted: %@", converted?@"YES":@"NO");
NSLog(@"Red: %f", red);
NSLog(@"Green: %f", green);
NSLog(@"Blue: %f", blue);
NSLog(@"Alpha: %f", alpha);
おっしゃる通り、アルファ値に問題があります。しかし、redColor、blueColor などで機能するようです。私が気づいた 1 つの薄い点は、黒色の rgba コンポーネントを取得しようとすると、変換された BOOL の値が NO になることです。なぜこれが起こるのかはわかりません。私はあなたがそれを回避する必要があると思います。
で黒色を作成すると、
[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
4 つのコンポーネント (rgb と a) をすべて正しい値で取得できます。blackColor がどのように色を作成するのか、別の色空間または RGBA への変換を不可能にする何かでそれを行うのだろうか。