ios - coredata-MO 修改反射(reflect) PS 中每个现有记录

标签 ios core-data nsmanagedobject nsmanagedobjectcontext nspersistentstore

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

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

我为艺术家、专辑和歌曲添加条目。 但问题是稍后对已添加的艺术家所做的编辑并未反射(reflect)到专辑中。

这样做我缺少什么?

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

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

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

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

最佳答案

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

从简要的观察发生的情况来看,我认为这个问题是因为您通过保存到名为“songArtist”的歌曲中的 NSString 显示艺术家姓名,而不是从引用的艺术家实体中获取艺术家姓名。

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

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

希望这是有道理的。

/* 更新 */

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

关于ios - coredata-MO 修改反射(reflect) PS 中每个现有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15426841/

相关文章:

ios - 在 iPad 上显示潜意识图像

ios - 使用 NSPredicate 搜索/过滤自定义类数组

ios - Swift 2 将 Json 解析为数组的可选

ios - 是否可以在 NSUserDefaults 中保存 NSManagedObject?

ios - 如何设计UIButton?

iphone - JSON 到持久数据存储(CoreData 等)

ios - 使用 Magical Record 获取记录时如何获取 "Newest Record"

cocoa - 核心数据 : Inverse relationship only mirrors when I edit the mutableset. 不知道为什么

objective-c - Swift:@objc(...) 属性

objective-c - 用于比较核心数据属性的月份部分的谓词