Ios 获取核心数据中具有关系的数据

Ios 获取核心数据中具有关系的数据,ios,core-data,entity-relationship,Ios,Core Data,Entity Relationship,我正在使用核心数据框架,希望使用关系获取数据。 我有两个名为User和Company的实体,分别有User\u name和Company\u name字段。我还与许多名rel_user->user有关系 现在我正试图获取这样的数据 User *userObj=(User*)[selectedData objectAtIndex:indexPath.row]; NSSet *resultData = [userObj valueForKeyPath:@"rel_user.user"]; N

我正在使用核心数据框架,希望使用关系获取数据。 我有两个名为User和Company的实体,分别有User\u name和Company\u name字段。我还与许多名rel_user->user有关系

现在我正试图获取这样的数据

User *userObj=(User*)[selectedData objectAtIndex:indexPath.row];
NSSet *resultData = [userObj valueForKeyPath:@"rel_user.user"];
    NSLog(@"subject -> %@",[resultData description]);

我想显示与用户相关的公司名称。

rel\u user
的反向关系的名称是什么?假设它是
rel_company
,并且用户->公司关系是一对一,那么您只需使用

user.rel_company.company.name
其中,
user
是一个特定的
user
对象


具体地给你的关系命名并没有什么好处。在用户上有
公司
关系(因为它将是持有公司的财产)和在公司上有
用户
关系读起来更好。然后,您可以从名称中判断属性将包含什么,以及它是对一关系还是对多关系

rel\u user
的反向关系的名称是什么?假设它是
rel_company
,并且用户->公司关系是一对一,那么您只需使用

user.rel_company.company.name
其中,
user
是一个特定的
user
对象


具体地给你的关系命名并没有什么好处。在用户上有
公司
关系(因为它将是持有公司的财产)和在公司上有
用户
关系读起来更好。然后,您可以从名称中判断属性将包含什么,以及它是对一关系还是对多关系

您可以通过关系名称获取相关公司名称

用户userObj=(用户)[selectedData objectAtIndex:indexPath.row]

NSString*companyName=userObj.RELATION\u NAME.company\u NAME

关系名称用于从用户实体连接到公司实体


希望这会有所帮助。

您可以通过关系名称获取相关公司名称

用户userObj=(用户)[selectedData objectAtIndex:indexPath.row]

NSString*companyName=userObj.RELATION\u NAME.company\u NAME

关系名称用于从用户实体连接到公司实体


希望这会有所帮助。

您好,谢谢您的回复,但我找不到与用户对象的关系属性。我需要为其设置父类吗?您自己在核心数据模型编辑器中定义关系。如果不创建子类,则必须使用valueForKeyPath。您好,谢谢您的回复,但我找不到与User对象的relationship属性。我需要为其设置父类吗?您自己在核心数据模型编辑器中定义关系。如果不创建子类,则必须使用valueForKeyPath。