私はユーザーが色を付けることができるアプリケーションを構築しています。たとえば、ユーザーは#00FFFFを「緑色」と名前を付けることができます。これらの名前と対応する色をCore Dataに保存する必要があります。コアデータにキー値のペアを保存する方法は?
私はペアをキーと値のペアとして保存することをお勧めします - キーとしての色と値としての名前。しかし、新しいエンティティを作成して2つの属性を追加したとき、Core Dataに「プライマリキー」なのかどうかを伝える方法はありません。 Core Dataに私に対応する名前を教えることはできません。
私はいくつかの回避策について考えていますが、十分に「甘い」わけではありません。
NSUserDefaults
に辞書としてキーと値のペアを保存します。しかし、そこには[String: AnyObject]
しか保存できません。私が必要なのは[Int: String]
です。私はintを文字列に変換できることを知っていますが、コードを読むことができず、読みにくくなります。また、キーの値をAnyObject
からString
にキャストする必要があります。これは私が気に入らない別のものです。ジェネリック医薬品は発明されていないようです。コアデータエンティティに色と名前を保存できます。色の名前が何であるかを知りたいときは、すべてを線形検索します。私は一度にそれを行うことがしたい
for item in allTheColorNames { if item.color == theStuffIWantToFind { // do something break } }
:このように
。上記のコードはあまりエレガントではない、あなたは私が何を意味するのか知っていますか?
このようなことができるように、コアデータに色名のペアを格納する方法はありますか?
var theNameOfGreen = colorNameDictionary[0x00ff00]
しかしplistをプログラムで編集できますか? – Sweeper
はい、私の編集を参照してください。 –
うーん...この状況でplistsを使うのはかなり良い考えのようだ。しかし、私はあなたのコードを理解できません。とにかくアイデアのおかげで!私はplistsについてもう少し研究をします! – Sweeper