UIColorをCore Dataに保存する

公開: 2014-05-09 15:11
更新: 2016-04-29 06:02
野菜不足な気がしたので1日1本的なパックの野菜ジュースを24本買いました。
2日経って残り4本になりました。なぜなら喉がかわくからです。

さてとぽてと、
UIColorをCore Dataに保存したい的な感じのみなさん。
だいたいUIColorはNSStringに変換して保存するのが主流なので、今日はCIColorを使ってNSStringに変更してみましょう。

UIColor → NSString
UIColor* color = [UIColor redColor];
NSString* colorString = [CIColor colorWithCGColor:color.CGColor].stringRepresentation;
NSString → UIColor
CGColorRef cgColor = [UIColor colorWithCIColor:[CIColor colorWithString:colorString]].CGColor;
UIColor* color = [UIColor colorWithCGColor:cgColor];
ってな感じです。
NSStringからUIColorに戻すときに一旦UIColorを経由しているのは、
+ (UIColor *)colorWithCIColor:(CIColor *)ciColorにて生成したUIColorは中身が


CIColor 1 0 0 1


となってます。
これを


UIDeviceRGBColorSpace 1 0 0 1


に直すために一旦CGColorにして、それからUIColorにしてる訳です。
(じゃないと比較のときに落ちたりするのだ)


なんかUIColor→NSStringの独自実装が多い気がするので、ご参考にどぞー。


この記事をシェア
この記事にコメントする
書き込む
あっきぃ(@appstars_aki)
Web、iOSなフリーランサーです。好きなものはお寿司です。でもお寿司は高いので普段は雑草とか拾ったドングリを食べています。お仕事や意味もなく毎月お小遣いをくれる人を探してます。

お仕事の依頼や自分で作ったアプリのレビューを希望しちゃう方はaki@appstars.jpまでご連絡ください。