ios - Swift CoreData 谓词

标签 ios swift core-data predicate

我对 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/

相关文章:

php - 在 Swift 中向服务器发出发布请求时出错

ios - 自定义 UICollectionViewCell 中的 UIImageView 始终返回 nil

ios - 如何使用 Tesseract OCR 读取身份证上的文字?

ios - 多对多关系 : Lazy Loading in Core Data

core-data - ManagedObjectModel 子类在 Swift 中不起作用

iphone - 如何使用静态库中的可加载包?

ios - Swift - 如何正确使用 MBProgressHUD.h?

swift - 添加为 subview 时 UIPageViewController 无法识别滑动

ios - iOS 上的 Facebook SDK 分享返回分享被取消

ios - UITableView/indexPath.row : why does if statement exclude row 10?