我正在使用核心数据。我有2个实体音乐和歌词。我创建了与逆和To-many的关系musicTolyrics。我必须为一首歌保存多个时间戳和歌词。我正在使用此代码
Lyrics *lyrics = [NSEntityDescription insertNewObjectForEntityForName:@"Lyrics"
inManagedObjectContext:context];
lyrics.Lyrics = albumTitleField.text;
lyrics.startTime = 0.0;
lyrics.lyricsTomusic = music;
这是在coredata中保存的。但我想保存一首歌的记录数量......就像外键一样..我怎么能这样做?请帮忙。
提前致谢
答案 0 :(得分:0)
看起来你的逆是错误的方式。而不是“音乐”,这是非常模糊的,让我们称之为“歌曲”。所以,Song
有“歌词”。其他歌曲也可以使用相同的Lyrics
。
到目前为止,我们有多对一的关系,因为很多歌曲都可以使用相同的歌词。
我建议您将其映射到Core Data建模器中。然后,自动生成类文件。然后,您将看到在多对多关系中,您可以将一个对象添加到一个集合中,因此您将拥有例如:
Song *mySong = [NSEntityDescription insertNewObjectForEntityForName:@"Song"
innManagedObjectContext:context];
Lyrics *myLyrics = [NSEntityDescription insertNewObjectForEntityForName:@"Lyrics"
innManagedObjectContext:context];
这是Core Data中的两个对象。现在用逆向定义关系:
Song.lyrics = myLyrics;
[myLyrics addSongObject:mySong];
如果您在模型中正确设置,您会看到自动为您生成的方法addSongObject
。