Ios 对不同实体进行预测

Ios 对不同实体进行预测,ios,objective-c,core-data,nspredicate,nsfetchedresultscontroller,Ios,Objective C,Core Data,Nspredicate,Nsfetchedresultscontroller,我想对不同的实体进行NSPredicate。这是我的核心数据库 简单地说,这是我应该做的查询 Select c.c_name From Company c, Person p Where c.c_id = p.cu_company_id 现在我想知道如果我想得到上面查询的结果,谓词应该是什么样子 假设c_id和cu_company_id是整数,您可以尝试 NSFetchRequest *fr = [[NSFetchRequest alloc] initWithEntityName:@

我想对不同的实体进行NSPredicate。这是我的核心数据库

简单地说,这是我应该做的查询

Select c.c_name From Company c, Person p Where c.c_id = p.cu_company_id

现在我想知道如果我想得到上面查询的结果,谓词应该是什么样子

假设c_id和cu_company_id是整数,您可以尝试

    NSFetchRequest *fr = [[NSFetchRequest alloc] initWithEntityName:@"Person"];
    NSError *error;
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"cu_company_id == data.company.c_id"];
    [fr setPredicate:predicate];
    NSArray *persons = [self.managedObjectContext executeFetchRequest:fr error:&error];
一旦你有了persons数组,你就可以循环遍历它并得到这个人的名字。以另一种方式得到它

    NSFetchRequest *fr = [[NSFetchRequest alloc] initWithEntityName:@"Company"];
    NSError *error;
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"c_id == data.person.cu_company_id"];
    [fr setPredicate:predicate];
    NSArray *companies = [self.managedObjectContext executeFetchRequest:fr error:&error];

一旦你有了公司数组,你就可以循环遍历它并得到公司的名称。

假设c_id和cu_company_id是整数,你可以试试

    NSFetchRequest *fr = [[NSFetchRequest alloc] initWithEntityName:@"Person"];
    NSError *error;
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"cu_company_id == data.company.c_id"];
    [fr setPredicate:predicate];
    NSArray *persons = [self.managedObjectContext executeFetchRequest:fr error:&error];
一旦你有了persons数组,你就可以循环遍历它并得到这个人的名字。以另一种方式得到它

    NSFetchRequest *fr = [[NSFetchRequest alloc] initWithEntityName:@"Company"];
    NSError *error;
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"c_id == data.person.cu_company_id"];
    [fr setPredicate:predicate];
    NSArray *companies = [self.managedObjectContext executeFetchRequest:fr error:&error];

一旦你有了公司数组,你就可以循环遍历它并得到公司的名字。

对不起,我需要的是公司的名字而不是人名。反过来说,这是一样的。很容易只考虑对象,而不是表、行和列。我编辑了答案。好吧,但是如果我需要一个person对象,并且不想从这个person对象中得到公司id,而是公司名称,该怎么办。我需要两个单独的取回请求吗?对不起,我需要的是公司的名字而不是人的名字。这是一样的,反过来说。很容易只考虑对象,而不是表、行和列。我编辑了答案。好吧,但是如果我需要一个person对象,并且不想从这个person对象中得到公司id,而是公司名称,该怎么办。我应该发出两个单独的提取请求吗?