2017-05-09 24 views
0

私はコアデータとswift 3で動作します。私は人 swift 3 - コアデータの関係 - データを取得

  • に割り当てるブックを作成することができますし、私はどの本情報を得ることができる方法を知っている人書籍
  • 私は人
  • を作成することができます。私はエンティティに持って

    • 最後にこのコードをどの人に割り当てますか

    どのようにしてその人がどの本を持っているのかを知ることができますか?私の最後のポストで

    詳細:swift 3 - create entry with relationship

    ありがとうございました:)

    let appdelegate = NSApplication.shared().delegate as! AppDelegate 
    let context = appdelegate.persistentContainer.viewContext 
    var books = [Book]() 
    let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Book") 
    do { 
        books = try context.fetch(request) as! [Book] 
    } catch { } 
    
    for book in books { 
        print("Title: \(book.title!)") 
        print("Person: \(book.person!.name!)") 
    } 
    
  • 答えて

    0

    あなたのモデルによれば、人は、複数の本を持つことができますので、次の2つの繰り返しループを必要としています。

    明示的な型キャストを避け、成功したフェッチに関連するコードdoスコープに入れる汎用のフェッチ要求に注意してください。

    let appdelegate = NSApplication.shared().delegate as! AppDelegate 
    let context = appdelegate.persistentContainer.viewContext 
    var people = [Person]() 
    let request = NSFetchRequest<Person>(entityName: "Person") 
    do { 
        people = try context.fetch(request) 
        for person in people { 
         print("Person: ", person.name!) 
         for book in person.books { 
          print("Title: ", book.title!) 
         }   
        } 
    } 
    
    catch { print(error) } 
    

    PS:他の質問で述べたように

    +0

    は、私はここでそれを愛する感嘆符を取り除くために非オプションとしてモデルにtitlenameを宣言することを検討 - そんなにありがとう:) – Ghost108

    関連する問題