2016-08-09 11 views
0

私はコードの2つの部分を持って、最初に2番目の作品を失敗...なぜ見ることができません。文字列へのUIColor変換が失敗します、なぜですか?

UIColor _color = [UIColor blackColor]; 

NSStringの* something1 = [[_color CIColor] stringRepresentation]。 //失敗します。 NSString * something = [[CIColor colorWithCGColor:[_ color CGColor]] stringRepresentation]; //作品

誰でも説明できますか?

+0

「失敗」と「作品」とはどういう意味ですか?結果を表示してください。 – Droppy

答えて

0

AppleのUIColorのドキュメントhereから、これはCIColorプロパティいるためである:カラーオブジェクトはコアイメージカラーで初期化されていなかった場合

は、例外がスローされます。

したがって、この場合には、_colorは、コアイメージカラーで初期化されていません。ただ[_color CIColor]でさえエラーを投げるので、これが本当であることがわかります。

他のケースでは、新しいCIColorをCGColorプロパティ_colorで初期化しています。このドキュメントは常にドキュメントからCGColorに解決されます。そのため、CIColorが正常に作成され、stringRepresentationを呼び出すことができます。

+0

_colorは[UIColor blackColor]に設定されていますが、これでは不十分だと言って、CIColorプロパティも初期化する必要がありますか? – unmircea

+0

いいえ、プロパティは読み取り専用です。初期化できません。ドキュメントで_UIColor_ _object_をコアイメージの色で初期化する必要があると記載されています。これは '_color'を' [UIColor colorWithCIColor:Some_CIColor] 'に設定するか、それ以外の場合は' CGColor'も同様に動作させることを意味します。 – Carter

+0

したがって、_color = [UIColor blackColor]を初期化すると、CIColorプロパティを使用するには十分ではありませんか? – unmircea

関連する問題