我对swift编程很陌生,最近开始尝试使用持久数据。我的搜索请求谓词有问题。
我的(测试)应用程序是一个简单的成绩管理器。它具有与Course
个实体具有一对多关系的Grade
个实体。当我想在tableview中显示我的成绩时,我想获取与特定课程有关系的所有成绩。我在我的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-loop)挑选出所有正确的成绩。
答案 0 :(得分:0)
courseName是Grade实体的值吗?如果是这样,您的谓词可能出错,请尝试:
let predicateCourse = NSPredicate(format: "courseName == %@", course)