2016-12-27 61 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版本。它需要一段時間才能找到,但換臺可以解決我的問題。