0

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

核心数据结构核心数据结构是这样的。

我为艺术家、专辑和歌曲制作条目。但问题是稍后对已添加的艺术家进行的编辑并没有反映到专辑中。

我错过了什么?

要重现此问题,我要求下载该项目并运行它。

  • 为艺术家、专辑和歌曲添加一些条目。
  • 然后稍后转到艺术家选项卡并编辑一些艺术家条目。
  • 现在转到专辑选项卡。您将看到与相关专辑条目的旧艺术家名称相同的艺术家名称。

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

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

4

1 回答 1

1

不确定有关重现问题的说明,因为“专辑”选项卡不显示艺术家的姓名,直到您单击“流派”按钮,然后它才能正确显示艺术家的姓名。我看到错误的地方是转到“歌曲”选项卡。

简要地看一下正在发生的事情,我相信这个问题是因为您通过保存在名为 songArtist 的歌曲中的 NSString 来显示艺术家姓名,而不是从引用的艺术家实体中获取艺术家姓名。

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

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

希望这是有道理的。

/* 更新 */

您的 Song 引用了 Artist,但它是一对多的关系。我一直认为一首歌曲只有一个艺术家,所以取消你的 CoreData 关系中的多对多关系。在这种情况下,您应该通过 song.artist.artistName 显示艺术家姓名。然后,当艺术家实体更新时,歌曲将引用艺术家,而艺术家又具有正确的信息。

于 2013-03-15T09:02:19.967 回答