2017-09-01 130 views
1

我有EmployeeExampleDeptt爲實體。CoreData:關係:保存:查詢

  1. EmployeeExample一個與Dept
  2. Dept一個關係與EmployeeExample
  3. 我想通過關係,將數據保存多個關係。我有部門的實體對象,與我要救employeeexample實體

我實現這一點,但我想知道是否是最佳的方式。任何最佳方式?我想知道這種關係是如何工作的。

我的代碼:

import UIKit 
import CoreData 
class ViewController: UIViewController { 
    var container: NSPersistentContainer? = (UIApplication.shared.delegate as? AppDelegate)?.persistentContainer 
    let appDelegate = UIApplication.shared.delegate as! AppDelegate 
    var empSet = NSSet() 
    var empS = Set<EmployeeExample>() 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     var context:NSManagedObjectContext = (container?.viewContext)! 
     let dept = NSEntityDescription.insertNewObject(forEntityName: "Deptt", into: context) as! Deptt 
     let emp = NSEntityDescription.insertNewObject(forEntityName: "EmployeeExample", into: (container?.viewContext)!) as! EmployeeExample 
     emp.firstName = "YYYY" 
     emp.lastName = "HHHHHHH" 
     empS.insert(emp) 
     print("Count of Emp SSSS Set == \(empS.count)") 
     let emp1 = NSEntityDescription.insertNewObject(forEntityName: "EmployeeExample", into: (container?.viewContext)!) as! EmployeeExample 
     emp1.firstName = "RRRRR" 
     emp1.lastName = "YYYYY" 
     empS.insert(emp1) 
     empSet.addingObjects(from: empS) 
     dept.deptName = "CCC" 
     print("Count of Emp SSSS Set == \(empS.count)") 
     print("Count of Emp Set == \(empSet.count)") 
     dept.addToEmp(empSet) 
     do { 
      try appDelegate.saveContext() 
      print("Saved -------------") 
     }catch {} 
    } 
} 

難道我每次都要創建一個Employee實例?

回答

1

我一定要每次都創建一個Employee實例?

那麼,你有每次新員工?如果你有新的信息,你需要創建一個新的Employee紀錄。如果您使用的是現有信息,則可以使用NSFetchRequest從持久存儲中查找現有的Employee。當有新的數據要保存時,您可以創建新的實例。無論你需要做的事只有你能回答。如果你有新的數據,是的。否則,不。