2016-06-08 47 views
0

我有两个实体员工和公司。 enter image description here如何从两个实体获取数据并在表格视图中显示核心数据(Swift)

我在两个实体中都插入了数据。使用以下梅索德:

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.empAge = Int(txtAge.text!) 
    employees.address = txtAddress.text 
// employees.company = company   
    company.mutableSetValueForKey(EntityName().employee).addObject(employees) 

    do { 
     try managedContext.save() 


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

,并使用该梅索德检索的数据:

func fetchCompanyName() { 

    let request = NSFetchRequest(entityName: EntityName().company) 

    if managedContext.countForFetchRequest(request, error: nil) > 0 { 

     do { 
      let fetchResult = try managedContext.executeFetchRequest(request) 

      company = fetchResult as! [Company] 

     } catch { 

      fatalError("Error in fetching company") 

     } 
    } 
} 

我想表明在节头和细胞的员工名单的公司名称。部分的编号将等于公司名称。我不知道该怎么做?

感谢您的帮助

+0

你熟悉'NSFetchedResultsController'及其委托方法吗?如果你实现了一个,你可以在实体Employees中设置它的'sectionNameKeyPath'值为一个新属性的值(例如'sectionIdentifier'),当你添加新对象时,你设置为'company.name'。 – andrewbuilder

回答

0

你可以简单地为您的公司为获取请求,然后通过关系进入公司的员工。

// Create a fetch Request for all companies. 
let request = NSFetchRequest(entityName: EntityName().company) 

// Retrieve an array of companies. 
let companies = try! managedContext.executeFetchRequest(request) as! [Company] 

// Ex: Get the employees for the first company. 
let firstCompanyEmployees = companies[0].employees 

现在你把所有的公司在一个数组,你就必须与你的company.name和各UITableViewCell内容与员工的信息来填充您UITableView头的。

请记住,您必须符合UITableViewDataSource协议以提供必要的信息,例如:每个部分的title和单元格的content

希望可以帮到:)

相关问题