【发布时间】: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 循环)挑选出所有正确的成绩。
【问题讨论】:
-
使用“%K”进行密钥替换。此处示例:stackoverflow.com/a/41638253/1187415
标签: ios swift core-data predicate