如何在NSSet核心数据(Swift)中保存价值

如何在NSSet核心数据(Swift)中保存价值,swift,core-data,Swift,Core Data,我必须进入实体,两者都是连接的 我想在公司实体值中插入值,但我不知道如何在Company.employees(NSSet)中插入值 员工和公司类别如下所示: extension Employees { @NSManaged var name: String? @NSManaged var age: NSNumber? @NSManaged var address: String? @NSManaged var company: Company? } extension Company {

我必须进入实体,两者都是连接的

我想在公司实体值中插入值,但我不知道如何在Company.employees(NSSet)中插入值

员工和公司类别如下所示:

extension Employees {

@NSManaged var name: String?
@NSManaged var age: NSNumber?
@NSManaged var address: String?
@NSManaged var company: Company?

}

extension Company {

@NSManaged var name: String?
@NSManaged var employees: NSSet?

}


// here i want to insert value 

    func addEmployees() {

    let companyEntity = NSEntityDescription.entityForName("Company", inManagedObjectContext: managedContext)
    let company = Company(entity: companyEntity!, insertIntoManagedObjectContext: managedContext)
    company.name = txtCompany.text


    let employeesEntity = NSEntityDescription.entityForName("Employees", inManagedObjectContext: managedContext)
    let employees = Employees(entity: employeesEntity!, insertIntoManagedObjectContext: managedContext)

    employees.name = txtName.text
    employees.age = Int(txtAge.text!)
    employees.address = txtAddress.text

    // getting no idea here how to save values to NSSet??
//  company.employees =




    do {
        try managedContext.save()            

    } catch {
        fatalError("Error in saving Data...")
    }


}

从另一方面来说,做这件事总是比较容易的:

employees.company = company
核心数据将处理关系的许多方面,因为您已经在数据模型中指定了反向关系

另外,重命名实体。它应该被称为
员工
,因为每个实体代表一名员工。这会让你在今后的道路上省去很多困惑

如果你真的坚持从公司端编辑它,你可以这样做:

company.mutableSetValueForKey("employees").addObject(employees)

我希望你会同意这一点,因为它更丑陋,也更容易出错。

从另一个角度看,这样做总是比较容易的:

employees.company = company
核心数据将处理关系的许多方面,因为您已经在数据模型中指定了反向关系

另外,重命名实体。它应该被称为
员工
,因为每个实体代表一名员工。这会让你在今后的道路上省去很多困惑

如果你真的坚持从公司端编辑它,你可以这样做:

company.mutableSetValueForKey("employees").addObject(employees)

我希望您会同意,这一点明显更难看,更容易出错。

谢谢您的回复,但我想在公司里这样做。使用我的答案键入NSSET的员工将得到完全相同的结果,除非你不需要乱搞集合。@S.Bharti你已经有了
公司
员工
来建立关系。用另一种方式定义关系。无论哪种方式,它都可以做同样的事情,而且这种方式更容易编码。好的,谢谢你的快速回复,我将使用employee.company,但是如果我必须使用第二种方法,那么如何才能做到呢???@S.Bharti你不应该“必须”使用另一种方法。纯粹是因为它总是可以用简单的方法来完成。方法是从公司的员工创建一个NSMutableSet,然后添加新员工,然后再将公司的员工设置到新编辑的集合中。感谢回复,但我想从公司执行此操作。使用我的答案键入NSSET的员工将得到完全相同的结果,除非你不需要乱搞集合。@S.Bharti你已经有了
公司
员工
来建立关系。用另一种方式定义关系。无论哪种方式,它都可以做同样的事情,而且这种方式更容易编码。好的,谢谢你的快速回复,我将使用employee.company,但是如果我必须使用第二种方法,那么如何才能做到呢???@S.Bharti你不应该“必须”使用另一种方法。纯粹是因为它总是可以用简单的方法来完成。但方法是从公司的员工创建一个NSMutableSet,然后添加新员工,然后再将公司的员工设置到新编辑的集合中。