2017-08-11 66 views
0

核心數據的多個部門的一個記錄我有兩個表命名員工 & 像以下方式系,我已經給了關係,如何節省使用SWIFT 3

參見下文我Department表

enter image description here

&這是我的Employee表

enter image description here

func saveEmpDetails(empId: String, andEmployeeName empName: String, andDeptId deptId: String, andDeptName departName: String, andProfile profileName: String, createdOn minutesAgo:Double , empQuote quote:String) { 

      // Reading AppDelegate 
      let appDelegate = UIApplication.shared.delegate as! AppDelegate 
      // Getting managed object context 
      let managedObjectContext = appDelegate.persistentContainer.viewContext 
      let empID:Int? = Int(empId) 

      let _predicate = NSPredicate(format: "empId=%@", empId) 

      let _fetchRecord: Employee? = isRecordExist(withEntiryName: "Employee", with: _predicate) as? Employee 


      if _fetchRecord != nil { 

       // Update Employee record as managed objext 


      }else { 

       // Inserting Employee record as managed objext 
       let _empInformation: Employee? = NSEntityDescription.insertNewObject(forEntityName: "Employee", into: managedObjectContext) as? Employee 

       _empInformation?.empId = Int32(empID!) 
       _empInformation?.empName = empName 
       _empInformation?.empProfile = profileName 
       _empInformation?.createdOn = Date().addingTimeInterval(-minutesAgo * 60) as NSDate 
       _empInformation?.empQuote = quote 

       let departmentRecord: Department? = NSEntityDescription.insertNewObject(forEntityName: "Department", into: managedObjectContext) as? Department 
       //   departmentRecord?.departName = departName 
       //   departmentRecord?.departId = Int32(deptId)! 
       //   departmentRecord?.addToEmployees(_empInformation!) 

       let allDepartments = NSSet(array : ["10", "11"]) // Set<String> 
       departmentRecord?.addToEmployees(allDepartments) 
       departmentRecord?.addToEmployees(_empInformation!) 
      } 

      // Saving the employee details using save context 
      appDelegate.saveDBContext() 
     } 

現在我想保存多個部門的一個記錄,讓我們假設在ABC員工工作的iOS部門& 的Android

我的問題是:如何我可以一次保存ABC員工記錄嗎?我已經給了我很多努力&沒有堆棧溢出,但沒有遇到這種情況。

任何人都可以幫助完成我的教程。

回答

2

將您的員工關係從「一對一」更改爲「多對多」,以便兩個實體之間的關係變爲「多對多」。那麼你的員工將有一組部門。只要查看多對多的核心數據關係,就會有很多關於它的信息。

+0

這是你的答案OP,然後你就可以使用'employee.ofDepartment.allObjects'來獲得你的員工所屬的部門數組 –

+0

即使我試過這個,但卻無法做到確切的事情,你有任何演示或教程嗎? –