まず、3 つの数字は色を表すのではなく、3 つの数字と色空間を組み合わせて表すことに注意してください。RGB は色空間ではなく、いわゆるカラー モデルです。RGB モデルには多くの色空間があります。したがって、((1,0,0), sRGB) は ((1,0,0), Adobe RGB) とは異なる色です。一連のバイト自体が文字列ではない文字列エンコーディングがどのように機能するかを知っていますか? それはとても似ています。また、色空間の処理を台無しにする機会であるため、コンポーネントの値を見たいときはいつでもトラブルを求めているという点でも似ています。
申し訳ありませんが、自分を助けることはできません。とにかく、元の色が ((1,0,0), Generic RGB) であるかのように質問に答えます。
NSColor *color = [NSColor colorWithCalibratedRed:1 green:0 blue:0 alpha:1];
NSLog(@"hue! %g saturation! %g brightness! %g, [color hueComponent], [color saturationComponent], [color brightnessComponent]);
その一方で、
NSColor *color = [NSColor colorWithCalibratedHue:h saturation:s brightness:b alpha:1];
NSLog(@"red! %g green! %g blue! %g, [color redComponent], [color greenComponent], [color blueComponent]);
これらの fooComponent メソッドは、すべての色で機能するわけではなく、2 つの特定の色空間でのみ機能します。ドキュメントを参照してください。上記の方法で自分で色を作成した場合は、自分が優れていることを既に知っています。出自が不明な色がある場合は、-[NSColor colorUsingColorspaceName:]
.