【问题标题】:Swift CoreData predicateSwift CoreData 谓词
【发布时间】:2017-06-08 02:23:25
【问题描述】:

我对 swift 编程非常陌生,最近开始尝试使用持久数据。我对搜索请求的谓词有疑问。

我的(测试)应用程序是一个简单的成绩管理器。它具有与Grade 实体具有一对多关系的Course 实体。当我想在表格视图中显示我的成绩时,我想获取与特定课程相关的所有成绩。我在我的DatabaseController 类(我用它来管理我的CoreData)中为此创建了一个函数,但是当您实际获取此函数的返回值时,它始终为空。

class func returnFetchRequestGrades(course: Course) -> NSFetchRequest<Grade>{

    let fetchRequestGradesInCourse: NSFetchRequest<Grade> = Grade.fetchRequest()
    let predicateCourse = NSPredicate(format: "%@ == %@", "c.course.courseName", course)
    fetchRequestGradesInCourse.predicate = predicateCourse

    return fetchRequestGradesInCourse
}

我能做些什么来解决这个问题?

当我使用以下解决方法时它确实有效:我创建了一个没有谓词的获取请求。我获取结果。这给了我所有成绩的列表。然后我(使用 for 循环)挑选出所有正确的成绩。

【问题讨论】:

标签: ios swift core-data predicate


【解决方案1】:

courseName 是 Grade 实体的值吗?如果是这样,您的谓词可能是错误的,请尝试:

let predicateCourse = NSPredicate(format: "courseName == %@", course)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多