我对 swift 编程很陌生,最近开始尝试持久数据。我对搜索请求的谓词有疑问。
我的(测试)应用程序是一个简单的成绩管理器。它具有与 Grade
实体具有一对多关系的 Course
实体。当我想在表格 View 中显示我的成绩时,我想获取与特定类(class)相关的所有成绩。我在我的 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 循环)选出所有正确的成绩。
最佳答案
courseName 是 Grade 实体的值吗?如果是这样,您的谓词可能是错误的,请尝试:
let predicateCourse = NSPredicate(format: "courseName == %@", course)
关于ios - Swift CoreData 谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44417458/