swift - 从 Swift Core Data 中的许多关系中获取属性

标签 swift core-data

我这辈子都做不到。我有一个“匹配”实体和一个通过多对多关系连接的“玩家”实体。对于每场比赛,我都试图创建一个从 Core Data 中的 Players 实体中提取的名称字符串。这是我一直在努力实现这一目标的最新体现:

let players = matchData[indexPath.row].value(forKeyPath: "players") as? NSManagedObject
    let playerNames = players?.value(forKey: "firstName") as? NSMutableArray

    let playersString = playerNames?.componentsJoined(by: ",")

matchData 是保存我获取的数据的 NSManagedObject。 “玩家”是与“玩家”实体的关系的名称。 “firstName”是我试图串在一起的属性。

然而,即使我确信每场比赛都保存了球员记录,这也会为每场比赛返回“nil”。我可以很好地显示其他 matchData 项,但在处理这种对多关系时遇到了问题。

最佳答案

value(forKeyPath: "players") as? NSManagedObject

如果players确实是一对多关系,那么这段代码将始终返回 nil,因为它会尝试转换为 NSManagedObject。但实际类型是 SetNSManagedObject秒。

value(forKeyPath: "players") as? Set<NSManagedObject>会让你越过第一个障碍。

您也可以帮自己指定托管对象子类,然后您将为所有这些东西生成属性,这将使您的代码更清晰、更容易理解。

关于swift - 从 Swift Core Data 中的许多关系中获取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43583645/

相关文章:

ios - 从 tableView 中删除 NSManagedObject 并正确地重新加载 View

ios - 核心数据堆栈: This Apple provided example adds the Persistent Store Coordinator to the stack asynchronously. 为什么?

ios - 如何在 IOS Swift 中获取 Core 数据中的一对多关系?

swift - iOS- swift : multi line labels in TableView rows

ios - 在散点图上绘制置信椭圆

iOS:当我从前台切换到后台时,我丢失了核心数据实体

ios - NSPredicate 嵌套子查询编译失败(核心数据)

swift - 无法导入 ManagedObject 类

ios - 如何快速将 .caf 音频文件转换为 .mp4 文件

ios - 限制 Core Data 存储大小的最佳方法是什么?