もうだいぶ放置してある現象で、Karaoke が Mac OS X 10.5 で動かない。
NSColor * c = [NSColor whiteColor];
float r = [c recComponent];
こんな単純なコードが動かない。
今日重い腰を上げてドキュメントを読んでみたら、「RGBカラーでなければ例外を投げる」と書いてあった。whiteColor は RGB カラーではなくグレースケールカラーとして定義されているらしい。
過去のアプリケーションとの互換性低すぎないか?これ。
ということで、理由は分かったけれどもシステム標準の色からいつでも安全に RGB を得たい場合はどうすればいいんだろう。
わざわざ変換しなくてはならないとか?
それともシステムカラーは使えないものとして [NSColor colorWithCalibratedRed:green:blue:] で自力で解決するとか?