【问题标题】:Core Data Many-to-Many Swift核心数据多对多 Swift
【发布时间】:2018-08-11 17:37:26
【问题描述】:

如何从多对多关系中提取对象?

我正在制作一个应用程序,它具有以下多对多关系的实体。

游戏>团队。

我想制作显示以下对象的标签: “Game.id”和“Team.name”。

当我获取 Games Entity 时,我可以访问“teams”NSSet,但无法提取“Team.name”对象,例如“Game.teams.name”。

我想返回[第 1 场,A 队,B 队]

relational diagram here for reference

【问题讨论】:

标签: ios swift core-data relationship


【解决方案1】:

您无法通过“Games.teams.name”访问它,因为该集合没有名称属性,因此您必须遍历该集合并从每个单独的团队中提取名称。

当然,如果游戏是体育游戏,它总是有两个团队,然后您可能需要重新考虑您的设计,而是在游戏与团队之间建立一对一的关系,例如主队和客队。如果您知道游戏中总是有团队,那么这可能比多对多关系更容易处理。

访问团队的示例,假设您有一个游戏实例:

if let teams = game.teams as? Set<Team> {
  for team in teams {
    print(team.name)
  }
}

【讨论】:

  • 我在答案中添加了一个示例
  • 嗨@JoakimDanielson,是否需要编写扩展名或获取名称的方法?
  • 对不起,我不明白。 name 是 Team 实体中的一个属性。
  • 循环运行良好。非常感谢您的帮助 Joakim!
猜你喜欢
  • 2016-08-16
  • 2016-09-08
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
  • 2016-06-30
  • 1970-01-01
相关资源
最近更新 更多