2017-10-08 15 views
0

からすべての書籍を取得し、私は2つのコアデータのエンティティ(Personとブック)私はすべての書籍を要求したいと思います私はMacOSのために迅速な4で働いている人

、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の「フィルタリング結果」を参照してください。 - なぜBookオブジェクトを取得するために 'NSFetchRequest 'を作成するのですか? –

+0

この文書は私には役に立たないと思います。 'request.predicate = NSPredicate(書式:" bookName =%@ "、" MyBook ")'しかし、私は述語がどのように割り当てられた人を取得するために探す必要があるかを知る必要があります。本との関係で – Ghost108

+0

ちょうどキーの経路に従ってください。 'NSPredicate(形式:" person.name =%@ "、" Max ")' –

答えて

0
  • ブックスは一対一人、
  • プロパティを持っている
  • "firstNameの" へ "人" の関係があります。

だから、「person.firstNameは」 その所有者の最初の名前に本からの鍵のパスであり、あなたが探している述語が

NSPredicate(format: "person.firstName = %@", "Max") 
関連する問題