2016-11-11 26 views
0

私はGameというCoreDataオブジェクトを持っており、それにはplayedListという関係があります。私はそれがデータの辞書を保持したかった。私には分かりません。Coredata関係、保存済み

1)関係はNSSetである必要がありますか? 2)Dictionary [String:Int]または[Player:Int]をその関係にどのように保存するのですか?それはだとして、私はこの上で少しわからないよ

は私がNSDataに関係を変更し、対多の関係のために価値の

game.playedList = try NSJSONSerialization.dataWithJSONObject(myDictionary, options: []) 
    } catch { 
     print("JSON serialization failed: \(error)") 
    } 

容認できないタイプを使用しようとしましたCoreDataを初めて使用したとき

答えて

1

CoreDataエンティティの関係は、1つ以上の他のCoreDataエンティティとする必要があります。エンティティと非CoreDataオブジェクトの間の関係をディクショナリのように定義することはできません。

属性を持つ新しいエンティティを定義して、各キーをこのディクショナリに格納することができます(予測可能な場合)。

データは、私の状況では、あなたがプレイし、誰の辞書を格納するための最良の方法は何かだと思いますので、[OK]をValueTransformer(Storing UIColor object in Core Dataと同様のを参照してください)

+0

を使用して属性として別の方法として、あなたの辞書を保存することができ彼らは遊んだ時間?あなたが言っていることから、私のゲームエンティティに新しい属性を追加し、それをTransformableとして設定し、それをNSDataとして保存しますか? – Jonnny

+0

予測可能なデータを格納している場合は、エンティティタイプが不足しているように見えます。おそらくあなたのケースでは、 'duration'と' playerName'属性を含む 'Replay'や' GameRecord'、あるいは 'Player'エンティティとは別の関係を持つことさえあります。 – Jonah

+0

私は 'ゲーム'エンティティを持っています。そのゲームは 'チーム'に属し、 'プレーヤーは'チームに属します。どのゲームをどのプレイヤーがどのゲームでプレイしたかを記憶する方法が必要です。私は現在プレイしているプレイヤーの「NSSet」を持つことができることを知っています。しかし、各プレーヤーが何分プレイしたかを保存する最善の方法を確かめることはできませんか? (いくつかのプレイヤーは負傷した場合、すべてのゲームでプレイしないかもしれないことに注意してください)。どう思いますか? – Jonnny

関連する問題