2013-07-01 43 views
2

我有以下数据模型:两个核心数据关系的一个查询?

,我想有一个指向它的歌曲列表播放列表对象上的属性。现在,我有这样的:

self.songs = [self.playlistMemberships valueForKey:@"song"]; 

但我注意到,这是非常缓慢和核心数据似乎发射了故障对每个单独的歌曲。有关如何进行单一通话以获取所有歌曲信息的想法?谢谢!

回答

0

PlaylistMembership只是似乎妨碍 - 你可以直接联系PlaylistSong并删除了PlaylistMembership?我想这会让核心数据一次获取所有歌曲,而不是获取所有成员资格,然后不得不返回来获取每首歌曲。

如果您不能或不希望摆脱成员资格实体,请使用setRelationshipKeyPathsForPrefetching:指定song应与成员资格一起提取。

+0

我们希望保持这种数据结构,使其保持与我们服务器上的数据库平行,因此改变这个并不是一个真正的选择。 – quantka

+0

@quantka也许我的第二段会有所帮助。 – Caleb

+0

谢谢。我认为这工作,还没有完全测试它:[fetchRequest setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObject:@“playlistMemberships.song”]]; – quantka