私が取り組んでいるプロジェクトでは、特定のビューの背景として使用される色をユーザーに選択させています。メインカラー (「redColor」/「blueColor」など) のいずれかを選択するか、カスタム RGB 値で色を作成するオプションがあります。色を選択すると、それを「以前に使用した色」の配列に保存して、再利用したい場合に後で簡単に選択できるようにします。
現在、すべてが完全に機能しており、次を使用して色を NSUserDefaults に保存しています。
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:colorArray];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"colors"];
これは完全に機能しますが、パターン (underPageBackgroundColor など) を含む色を保存するたびに、次の警告が表示されます。
we're encoding a color that has a pattern selector (underPageBackgroundColor) but not a system color name - that shouldn't happen
動作が停止することはなく、まだ色が保存されているので、後で取得できます。このエラーについて心配し、代わりにパターン化された色を文字列として保存する必要がありますか、それともエラーを引き起こしているようには見えないので無視する必要がありますか?
また、この警告の理由を知っている人はいますか? 期待どおりに機能しないことが原因ではないようです。