如何从Swift中的CoreData实体关系中获取分段数据

时间:2018-03-16 10:09:12

标签: swift core-data

enter image description here

我有一对多关系用户 - >重量如截图所示。我能够使用NSFetchRequest和NSFetchedResultsController从实体中提取分段数据,然后在带有部分的表视图中显示它。

我可以通过用户实体提取重量数据。但我的问题是,如何提取重量数据,以便我可以在表视图上显示它,其部分类似于NSFetchedResultsController的工作方式?

任何帮助将不胜感激。提前谢谢!

2 个答案:

答案 0 :(得分:1)

NSFetchedResultsController可以与具有objectAtIndexPath和sections属性的collectionView或tableView进行交互。但是你不需要那样使用它。您可以仅在NSFetchedResultsController个对象上创建User而不使用sectionNameKeyPath。 section的数量是fetchedResultsController的项目数。并且每个部分中的项目数等于每个项目的权重数。同样,当您获得委托的更改回调时,将fetchedResultsController的indexPaths转换为sections。

答案 1 :(得分:0)

好的,所以我想出了最好的方法。我没有通过查询用户实体获取权重数据,而是查询了Weight实体,并使用谓词仅返回特定用户的权重数据。

这样的事情:

func requestFetch(ofUser selectedUser:User) - > NSFetchRequest { ... 让userPredicate = NSPredicate(格式:“user ==%@”,selectedUser) ... return fetchRequest }