获取 SwiftUI CoreData 关系
Posted
技术标签:
【中文标题】获取 SwiftUI CoreData 关系【英文标题】:Fetch SwiftUI CoreData relationships 【发布时间】:2019-10-20 15:38:13 【问题描述】:我在使用新的 SwiftUI 时遇到问题。我创建了具有一对多关系(一辆车->许多日期点)的CoreData模型汽车和日期点。因此,我需要一个获取请求来收集汽车的所有日期点。我是怎么做到的?
看看我目前只收集汽车的代码。我可以修改@FetchRequest 来达到那个目的吗?
@FetchRequest(entity: Cars.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \Cars.name, ascending: true)]) var cars: FetchedResults<Cars>
【问题讨论】:
Datepoints 是 Cars 上的一个属性,其名称与模型中的关系名称相同。因此,如果关系是日期点,那么您可以通过for car in cars print(car.datepoints)
访问它们
【参考方案1】:
您可以在数据点的 fetchRequest 中使用谓词。这是一个示例:
@FetchRequest(
entity: Datapoints.entity(),
sortDescriptors: [
NSSortDescriptor(keyPath: \Datapoints.date, ascending: true),
],
predicate: NSPredicate(format: "CarsRelationship.name == %@", "Ford")
) var datapoints: FetchedResults<Datapoints>
在这里您可以找到更多关于 CoreData 和 SwiftUI 的基本信息:https://www.hackingwithswift.com/quick-start/swiftui/how-to-filter-core-data-fetch-requests-using-a-predicate
【讨论】:
以上是关于获取 SwiftUI CoreData 关系的主要内容,如果未能解决你的问题,请参考以下文章
来自先前选择器的选择器值 - CoreData/SwiftUI
使用 SwiftUI ForEach 从 NSOrderedSet 获取字符串值
SwiftUI - 使用 CoreData 获取的结果来填充选取器