插入数据时如何以一对多关系将项目连接到类别
How to connect items to category in one to many relationship when insert data
我有 2 个实体,一个是客户,另一个是个案,关系是一对多的,一个客户有很多个案,关系名称 toCustomers 用于案例实体,toCases 用于客户实体,所以在我的代码中,我将选定的客户名称传递给继续添加案例 UIViewController
var CustmerNameForAddNewCaseVar: Customers?
CustomerNameLbl.text = CustmerNameForAddNewCaseVar?.name
在保存按钮中
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)
}
任何帮助
谢谢
要使用您的示例...您需要更改代码以匹配此内容:
let newCase : Cases!
newCase = Cases(context:context)
newCase.caseName = caseNameTextField.text
newCase.toCustomers = CustmerNameForAddNewCaseVar
do {
// Save Context
} catch {
// Handle Error
}
请注意 "newCase.toCustomers" 行已更改。
其他人在对您问题的评论中提出的建议是清除您的实体和变量的命名,以帮助阐明用法。一个例子是:
import UIKit
import CoreData
class Customer: NSManagedObject {
@NSManaged var cases: Set<Case>?
}
class Case: NSManagedObject {
@NSManaged var customer: Customer?
@NSManaged var name: String?
}
class ViewController: UIViewController {
var customer: Customer?
var context: NSManagedObjectContext?
@IBOutlet weak var caseName: UITextField?
@IBAction func didTapSave(_ sender: UIButton) {
guard let context = self.context else {
return
}
guard let customer = self.customer else {
return
}
let newCase = Case(context: context)
newCase.name = caseName?.text
newCase.customer = customer
do {
try context.save()
} catch {
// Handle Error
}
}
}
我有 2 个实体,一个是客户,另一个是个案,关系是一对多的,一个客户有很多个案,关系名称 toCustomers 用于案例实体,toCases 用于客户实体,所以在我的代码中,我将选定的客户名称传递给继续添加案例 UIViewController
var CustmerNameForAddNewCaseVar: Customers?
CustomerNameLbl.text = CustmerNameForAddNewCaseVar?.name
在保存按钮中
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)
}
任何帮助 谢谢
要使用您的示例...您需要更改代码以匹配此内容:
let newCase : Cases!
newCase = Cases(context:context)
newCase.caseName = caseNameTextField.text
newCase.toCustomers = CustmerNameForAddNewCaseVar
do {
// Save Context
} catch {
// Handle Error
}
请注意 "newCase.toCustomers" 行已更改。
其他人在对您问题的评论中提出的建议是清除您的实体和变量的命名,以帮助阐明用法。一个例子是:
import UIKit
import CoreData
class Customer: NSManagedObject {
@NSManaged var cases: Set<Case>?
}
class Case: NSManagedObject {
@NSManaged var customer: Customer?
@NSManaged var name: String?
}
class ViewController: UIViewController {
var customer: Customer?
var context: NSManagedObjectContext?
@IBOutlet weak var caseName: UITextField?
@IBAction func didTapSave(_ sender: UIButton) {
guard let context = self.context else {
return
}
guard let customer = self.customer else {
return
}
let newCase = Case(context: context)
newCase.name = caseName?.text
newCase.customer = customer
do {
try context.save()
} catch {
// Handle Error
}
}
}