iOS 5 アプリでテーマをサポートするためのクラスをいくつか作成しています。私のテーマは plist に保存され、さまざまなコントロールを初期化するためにアプリで使用する Theme オブジェクトにロードします。色を文字列としてテーマに保存し、次のコードを使用してそれらを UIColor に変換します。
UIColor* color = [UIColor colorWithCIColor:[CIColor colorWithString:@"0.5 0.5 0.5 1.0"]];
これはほとんどのコントロールで正常に機能しますが、ナビゲーション バーの色合いを次のように設定しようとすると、次のようになります。
//navigation bar
[self.navigationController.navigationBar setTintColor:color];
私はこの例外を受け取ります:
-[UICIColor colorSpaceName]: unrecognized selector sent to instance
CIColor を使用せずに色を初期化すると、たとえば次のようになります。
UIColor* color = [UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:1.0];
[self.navigationController.navigationBar setTintColor:color];
すべてうまくいきます。
これを引き起こしている手がかりはありますか?UICIColor に関する情報はあまり見つかりませんでしたが、UIColor は CGColor または CIColor のラッパーにすぎないため、実装に違いがあると推測しています。