2016-12-27 34 views
1

请大家帮忙。快速加入多个关系

我有3 NSManaged对象。

说员工,工资单,PayItem

每个Employee可以有多个Payslips,每个Payslip可以有多个PayItems

so the relationship is Employee <->> Payslip <<- PayItem

它们全部设置为NSManagedOjects

那么可以说我有各自的3个实例:(想象一下,我加入这个给NSManagedObject类初始化每个:

convenience init(context: NSManagedObjectContext) 
    { 
    let entity = NSEntityDescription.entity(forEntityName: <entity>, in: context)! 
    self.init(entity: entity, insertInto: context)' 
    } 

然后我可以声明

var employee = Employee(context: context) 
     var payslip = Payslip(context: context) 
     var payItem = PayItem(context: context) 

我可以然后:

employee.addToPayslip(payslip) //Using the function created for me by default. 

但如果我尝试:

payslip.payItem = payItem 

我总是得到错误:

Failed to call designated initializer on NSManagedObject class 'PayItem'

总之,我想员工链接到工资单,这是一对多,那么工资单到payitem,这是一对多。我为什么要度过这么艰难的时光?

+0

据我所知创建一个3类Employee,PaySlip和Payitem。在Employee类中创建一个paySlip属性数组。在Payslip类中创建一个payItem属性数组。只是一个模型。我没有使用NSManagedObject。 –

+0

感谢您的建议。我确实可以使用类的数组。但在这种情况下。我特别想使用核心数据和NSManagedObjects – LateNate

+0

代码看起来很好。我怀疑你的模型里有什么可疑的东西。 – shallowThought

回答

0

所以事实证明,我有一个函数返回一个未初始化的PayItem版本。它需要一段时间才能找到,但换台可以解决我的问题。