私は2つのエンティティを1つの顧客とし、他のケースは1対多の顧客であり、1つの顧客は多くのケースを持ち、関係名はtoCustomers顧客エンティティ私は、保存ボタンでデータを挿入するときに1対多の関係でカテゴリに項目を接続する方法
var CustmerNameForAddNewCaseVar: Customers?
CustomerNameLbl.text = CustmerNameForAddNewCaseVar?.name
のUIViewController追加例にセグエによって選択された顧客名を渡す私のコードでのよう
let newCase : Cases!
newCase = Cases(context:context)
newCase.caseName = caseNameTextField.text
newCase.toCustomers = CustmerNameForAddNewCaseVar?.name // here i got error ... Cannot assign value of type 'String?' to type 'Customers?'
do{
AppDel.saveContext()
}catch{
print(error)
}
はあなた
を感謝任意のヘルプライン「newCase.toCustomers」は変更されているlet newCase : Cases!
newCase = Cases(context:context)
newCase.caseName = caseNameTextField.text
newCase.toCustomers = CustmerNameForAddNewCaseVar
do {
// Save Context
} catch {
// Handle Error
}
お知らせ:
すべてのエンティティに複数の名前が付いている場合、モデルを理解するのは非常に混乱します。 'toCustomers'は1つのケースか多くのケースですか?それ以外は 'Customer(s)'インスタンス(名前ではない)を関係に割り当てる必要があります。ところで、それはまさにエラーメッセージが言っていることです。 – vadian
toCustomersは関係の名前であり、Customersはエンティティであるため、Customersから継承した変数をコードに挿入した名前を読むことができます。新しいケースを思い出したときに顧客名に割り当てる必要がありますだから私はこれを好きなのですが、Relationship名に顧客名を挿入して、多くのケースが1つの顧客に属するようにしたいのですが、顧客名である文字列をエンティティからコンポジション名toCustomer考えてください – Mahmoud
関係は常に**エンティティ**の属性ではありません。命名に関して:let newCase:Casesは変数が単数であるが実体が複数であるため、矛盾している。エンティティ 'Case'と' Customer'と 'toCustomer'という名前を、** one **' Customer'であると仮定して名前を付けます。しかし、*対多*関係の名前は 'cases'です。 'Case'型のアイテムが** **たくさんあるはずですから。また、「[Cases]」という宣言は、同形(複数の二重)です。 – vadian