CoreData 获取所有一对多关系
Posted
技术标签:
【中文标题】CoreData 获取所有一对多关系【英文标题】:CoreData fetching all one-to-many relationship 【发布时间】:2018-01-06 16:02:30 【问题描述】:我有两个类,Session
和 Course
,会话和课程之间是一对多的关系。我正在尝试使用 NSPredicate 获取会话的所有课程。我尝试过的谓词抛出错误。
let fetchRequest: NSFetchRequest<Course> = Course.fetchRequest()
guard let startDate = session.startDate else
fatalError("Attempting to fetch courses for session without a start date")
let sessionPredicate = NSPredicate(format: "ALL %K == %@",
#keyPath(Course.session.startDate),
"\(startDate)")
fetchRequest.predicate = sessionPredicate
【问题讨论】:
【参考方案1】:如果您想查找课程具有给定开始日期的所有课程,则更容易:
let sessionPredicate = NSPredicate(format: "session.startDate == %@", startDate)
NSManagedObject
提供完整的 KVC 支持
【讨论】:
谢谢,这行得通,但我需要将 startDate 转换为 NSDate。以上是关于CoreData 获取所有一对多关系的主要内容,如果未能解决你的问题,请参考以下文章