2017-10-08 56 views
0

我迅速與4個工作MacOS的所有書籍,我有兩個核心數據實體(人與書)得到人

我想請所有書籍,wehre人==最大。 有了這個代碼,我可以獲取所有的書:

let request = NSFetchRequest<Book>(entityName: "Book") 
request.predicate = // 
request.sortDescriptors = [NSSortDescriptor(key: "bookName", ascending: true)] 
    do { 
     let books = try context.fetch(request) 
     print(books) 
    } catch { } 

但我怎麼也得使用謂詞只拿到了書,被分配到人的名稱爲「最大」?

+0

你看看「篩選結果「在https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/FetchingObjects.html中的核心數據編程指南? - 爲什麼你創建一個'NSFetchRequest '來獲取Book對象? –

+0

我想這個文件不能幫助我。我現在可以像這樣使用謂詞:'request.predicate = NSPredicate(format:「bookName =%@」,「MyBook」)'但是我必須知道謂詞是如何得到賦值人的與書籍的關係 – Ghost108

+0

只需按照關鍵路徑,例如'NSPredicate(格式:「person.name =%@」,「Max」)' –

回答

0
  • 書籍有一對一的關係 「人」 人,
  • 有一個屬性 「名字」。

所以「person.firstName」是從一本書到 擁有它的人的名字的關鍵路徑,你正在尋找的謂語是

NSPredicate(format: "person.firstName = %@", "Max")