2017-02-13 2 views
0

本質的には、事前に決められたリストの項目を持つバックパックを持つキャラクターをモデル化しようとしています。これまで私はこれを思いついた。私の主な問題は、データが、私はそれを読んだものから配列/リストなどをどのように処理するかコアを理解しているコアデータの "Character-Inventory-Item"スキーマをモデル化する方法

Core Data Model

が関係によって決定され、単純な文字 - 項目の関係は、私が最初に思い付いたものですが、私は、あらかじめ決められた項目(実行時にユーザーが追加できる項目)から選択した項目ごとにカスタム記述を追加できるようにしたいと考えました。各キャラクターには、カスタム説明とカスタムの「金額」またはカウントを持つアイテムのリストを持つ「バックパック」が1つしかありません。 そのリュックサックは、理論的には同じアイテムのうち2つを持つことができますが、説明が異なるため、1つのアイテムの数が2であると必ずしも適切ではありません。 また、複数の文字プロファイルのオプションがあるので、項目は複数の異なるバックパックに属することができますが、説明/カウントなどの違いもあります。

したがって、私の主な問題は、 。そして、「文字 - バックパック - アイテム」の関係を可能にするために、この問題に適切に対処する方法。

ありがとうございます!

答えて

0

ショートと迅速なクリーンアップ:

1:itemからごBackPackItem

2にプロパティを追加します。バックパックは、理論的には同じの2を有することができることitemエンティティ

を削除します商品番号: :

3:BackPackItemにプロパティbackpackItemIDを追加し、BackPackItemエンティティを作成するたびに一意のIDを割り当てます。そうすれば、同じ情報を持つ複数のアイテムを異なるIDで持つことができます。

今、あなたはあなたがフェッチ時に行うために必要なすべてがあるのためのそれの名前でCharacterエンティティを取得するために:最後に

(あなたがここに望むように行うには、必要に応じて、私の意見では、よりきれいなものを保持していません)例。そして、NSFetchRequestBackPackItem(関連の名前が付いた関連BackPackItems)をrelationshipKeyPathsForPrefetchingと追加すると、すべてassociatedBackPackItemsが自動的に取得されます。

ここでCharacterを取得し、そのBackPackItem - >character.associatedBackpackItemsにアクセスしたい場合は、その文字に接続されているすべてのアイテムが表示されます。

+0

ありがとうございました。私は関連するコードを書き始めていないので、これをすべてテストしてもらえますか?私は今のところこれをチェックして、elsesの時間を無駄にしないようにします:) – mccal99

+0

@ mccal99 NP、それはあなたが持っている非常に簡単な設定に見えるので、これが最善の方法であるはずです。 3つ目の関係を持つことは、あなたにとって本当に面倒なことになります。物事をシンプルに保つようにしてください。あなたはきれいなコードと頭痛の少ないものになります。私は編集を行った、あなたはitemSに改名する必要はありません、アイテムシングルはより正確です。 –

関連する問題