2017-05-23 25 views
1

Swift CoreDataに関するいくつかの機能、特に「多対多」関係を持つ2つのエンティティにデータを保存する際に役立つ機能を探しています。Swift CoreData、多対多の関係を使用してデータを保存

私はこのサイトを検索し、3つの異なるuDemyコースにも登録していますが、私が設計した教育のために使用しているアプリケーションを作成するのに苦労しています。

は、私がセットアップ関係を持っている... ChildEntity - toParent & ParentEntity - toChild ...これらの両方があるCoreDataにデータを保存する

My機能が唯一の子ではなく、親を保存している、そしてより「多くの」具体的には、親を子にリンクしていません。

関係(toParent)はNSSet型ですが、明らかにこれは不変です。コンソールにエラーは表示されません。

私は、リレーションシップ名、つまりtoParentを使用して別のエンティティにデータを保存してリンクすることができましたが、親の各属性と値のペアが関係を通じてどのように保存されているかを確認するのに苦労しました。

@IBAction func saveChild(_ sender: UIBarButtonItem) { 

let child = ChildEntity(context: moc) 

    if let firstName = txtFirstNameChild.text { 
     child.firstName = firstName 
    } 

    if let lastName = txtLastNameChild.text { 
     child.lastName = lastName 
    } 

    child.toParent?.setValue(txtFirstNameMum.text!, forKey: "firstNameMum") 
    child.toParent?.setValue(txtMobileMum.text!, forKey: “mobileMum") 
    child.toParent?.setValue(txtFirstNameDad.text!, forKey: "firstNameDad”) 
    child.toParent?.setValue(txtMobileDad.text!, forKey: “mobileDad”) 

    ad.saveContext() 
} 

これは私の最初のオンライン質問ですので、私の固執のポイントを説明するための詳細が必要な場合はお知らせください。ありがとう

答えて

1

親を作成するか、既存のオブジェクトを親として割り当てる必要があります。自動的に存在するだけではありません。

+0

ParentEntiyを表すvarを作成する場合と同様に、その変数に必要な情報をそのエンティティに保存します。 – K1llarney

+0

情報は関係を介してリンクされますか? – K1llarney

+0

そう、新しいParentを作成するか、既存のParentを見つけてください。その親を子に設定します。正確な構文についてはわかりませんが、obj-cでは '[child addParentObject:parent];' – trapper

関連する問題