2011-10-13 27 views
1

コアデータを使用しています。私は2つのエンティティの音楽と歌詞を持っています。私はinverseとTo-manyの関係musicTolyricsを作成しました。私は1曲のタイムスタンプと歌詞の数を節約しなければならない。このコードを使用しています。多対多関係のコアデータ/

これはcoredataでこれを保存しています。しかし、私は1曲のレコードの数を保存したいと思っています。ちょうど外国のキーのように..私はこれをどのようにすることができますか?助けてください。

ありがとうございます。

答えて

0

あなたの逆が間違っているようです。かなり曖昧な "Music"ではなく、 "Song"と呼んでみましょう。したがって、Songには「歌詞」があります。他の曲も同じLyricsを使用することができます。

これまでのところ、多くの曲が同じ歌詞を使用できるという点で多対1の関係があります。

私がお勧めするのは、これをCore Dataモデラーでマップすることです。次に、自動的にクラスファイルを生成します。あなたは、あなたがセットにオブジェクトを追加することができ、対多の関係でそれが表示されますので、あなたは、例えば必要があります:コアデータにおける2つのオブジェクトをだ

Song *mySong = [NSEntityDescription insertNewObjectForEntityForName:@"Song"  
innManagedObjectContext:context]; 

Lyrics *myLyrics = [NSEntityDescription insertNewObjectForEntityForName:@"Lyrics"  
innManagedObjectContext:context]; 

を。あなたがモデルに正しく物事を設定した場合は、自動的に生成される方法addSongObjectが表示されます

Song.lyrics = myLyrics; 
[myLyrics addSongObject:mySong]; 

:今は逆との関係を定義します。

+0

正しくモデル化していれば、 'myLongrics'に' mySong'オブジェクトを追加する必要はありません。 「Song」に歌詞を設定すると、逆の関係が自動的に処理されます。 –

+0

いいえ..曲のような関係が必要なのは、歌詞付きのタイムスタンプの数があるかもしれません。複数の歌で歌詞を共有することはできません。 – iProgrammer

+0

ああ、ok。タイムスタンプは何を表していますか?それは曲の長さですか、または曲内のポイントですか? –