coredata-MO修改反映了PS中的每个现有记录

时间:2013-03-15 07:22:12

标签: ios core-data nsmanagedobject nsmanagedobjectcontext nspersistentstore

我发现了许多教程和关于核心数据的互联网文章,但我正在制作实时和实时的示例应用程序对初学者更有用。您可以找到sample code here

核心数据结构core data structure就像这样。

我为艺术家,专辑和&歌曲。 但问题是后来编辑已完成已经添加的艺术家没有反映到专辑。

我错过了什么?

要重现此问题,我请求下载该项目&跑吧。

  • 为艺术家,专辑和&歌曲。
  • 然后转到艺术家标签&编辑一些艺术家条目。
  • 现在转到相册标签。您将看到与相关相册条目相同的艺术家姓名。

这就是问题所在。理想情况下,我应该在那里看到新的条目。

我想要一些真正的方法来实现这个

1 个答案:

答案 0 :(得分:1)

由于“相册”标签未显示艺术家的姓名,因此您不能确定有关重现问题的说明,直到您单击“流派”按钮,然后它会正确显示艺术家姓名。我看到错误的地方是进入歌曲选项卡。

简要了解一下发生了什么我相信这个问题是因为你通过保存在你名为songArtist的歌曲中的NSString显示艺术家名字,而不是从被引用的艺术家实体中获取艺术家名字。

CoreData不会因为您更改artist.artistName而更新song.artistName NSString。它不知道那两个字符串是相关的。您需要自己进行更新。

或者,您需要刷新Song实体中的信息以设置Song的artistName的新变量。

希望这是有道理的。

/ * UPDATE * /

你的歌曲引用了艺术家,但这是一种多对多的关系。我总是认为一首歌只会有一位艺术家,因此请在你的CoreData关系中解开多对多的关系。在这种情况下,您应该通过song.artist.artistName显示艺术家姓名。然后,当更新艺术家实体时,歌曲将引用艺术家,而艺术家又具有正确的信息。