代码之家  ›  专栏  ›  技术社区  ›  hp iOS Coder

反映PS中每个现有记录的核心数据MO修改

  •  0
  • hp iOS Coder  · 技术社区  · 11 年前

    我发现了很多教程&互联网上的文章 岩心数据 但我正在制作一个实时的示例应用程序;对初学者更有用。你可以找到 sample code here .

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

    我为艺术家、专辑和;歌曲。 但问题是,后来对已经添加的艺术家进行的编辑并没有反映到专辑中。

    我错过了什么?

    为了重现这个问题,我请求下载该项目&运行它。

    • 制作一些艺术家、专辑和;歌曲。
    • 然后稍后转到“艺术家”选项卡&编辑一些艺术家条目。
    • 现在转到“专辑”选项卡。对于相关的专辑条目,您将看到与旧艺术家相同的艺术家名称。

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

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

    1 回复  |  直到 11 年前
        1
  •  1
  •   DonnaLea    11 年前

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

    从发生的事情来看,我认为这个问题是因为你通过保存到你的歌曲中的名为songArtist的NSString来显示艺术家的名字,而不是从引用的艺术家实体中获取艺术家的名字。

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

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

    希望这是有道理的。

    /*更新*/

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