2017-06-07 163 views
0

我對swift編程相當陌生,最近開始嘗試持久化數據。我對搜索請求的謂詞有問題。Swift CoreData謂詞

我的(測試)應用程序是一個簡單的職級經理。它有CourseGrade實體具有一對多關係的實體。當我想在桌面視圖中顯示我的成績時,我想獲取與特定課程有關係的所有成績。我在我的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)挑選出所有正確的成績。

+1

關鍵替換使用 「%K」。示例在這裏:https://stackoverflow.com/a/41638253/1187415 –

回答

0

CourseName是Grade實體的值嗎?如果是這樣的斷言可能是錯的,嘗試:

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