【问题标题】:CoreData fetching all one-to-many relationshipCoreData 获取所有一对多关系
【发布时间】:2018-01-06 16:02:30
【问题描述】:

我有两个类,SessionCourse,会话和课程之间是一对多的关系。我正在尝试使用 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

【问题讨论】:

    标签: ios swift core-data nspredicate


    【解决方案1】:

    如果您想查找课程具有给定开始日期的所有课程,则更容易:

    let sessionPredicate = NSPredicate(format: "session.startDate == %@", startDate)
    

    NSManagedObject 提供完整的 KVC 支持

    【讨论】:

    • 谢谢,这行得通,但我需要将 startDate 转换为 NSDate。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多