如何在NSSet Core Data(Swift)中保存值 [英] How to save value in NSSet Core Data (Swift)

查看:132
本文介绍了如何在NSSet Core Data(Swift)中保存值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须连接Entity和两者。





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



员工和公司类别如下:

  {

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

}

扩展名公司{

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

}


//这里我想插入值

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

//这里不知道如何将值保存到NSSet ??
// company.employees =




do {
try managedContext.save()

} catch {
fatalError(Save in Data Data ...)
}


}
pre>

解决方案

从另一端开始更容易:

  employees.company = company 

核心数据关系的许多方面,因为你已经指定了数据模型中的反向关系。



此外,重命名您的实体。应该叫 Employee ,因为每个实体代表一个雇员。它会给你带来很多混乱的道路。



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

  company.mutableSetValueForKey(employees)addObject(employees)

我希望你同意是显着更丑陋,更容易出错。


I have to Entity in and both are connected.

I want to insert value in Company entity value but i have no idea how to insert value in company.employees(NSSet).

Both Employees and Company classes are given below:

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...")
    }


}

解决方案

It's always easier to do it from the other end:

employees.company = company

Core data will take care of the many side of the relationship because you've specified the inverse relationship in your data model.

Also, rename your entity. It should be called Employee, since each entity represents one employee. It will save you a lot of confusion down the road.

If you really insist on editing it from the company end, you do it like this:

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

Which I hope you'll agree is significantly uglier and more prone to errors.

这篇关于如何在NSSet Core Data(Swift)中保存值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆