CoreData中的三个实体:
User
EntityA
EntityB
关系:
EntityA
与User
&的一对多关系逆EntityA
与EntityB
&的一对一关系逆User
& EntityB
没有关系创建的对象:
UserA
创建objectA
类型EntityA
列出UserB
和UserC作为关系对象。UserA
还会创建ObjectB
类型EntityB
,列出ObjectA
,作为其关系对象访问对象
UserB
在EntityA
中登录并抓取并成功下载ObjectA
。 问题:UserB
能否访问ObjectB
?如果是,可以使用以下代码UserB
访问ObjectB:NSString *value = [ObjectA.OneToOneRelationshipBetweenEntityAandB valueForkey"@attributeFromObjectB"];
如果没有,UserB
如何访问ObjectB
?我需要建立什么样的关系?
我之前曾问过类似的问题,但我认为我提供的信息过多,令人困惑。我删除了这个问题,希望将其简化为此问题。
感谢。
答案 0 :(得分:2)
假设统一的核心数据模型,只要存在关系,您就可以轻松访问对象。
为了便于阅读,我正在重新定义您的变量/关系名称:
User <<-----> Group <<-----> Community
社区有很多群体有很多用户。这很简单,看起来像一个可行的设置。
澄清:用户无法创建对象。只有一个程序可以做到这一点。
Group *newGroup = [NSEntityDescription
insertNewinsertNewObjectForEntityForName:@Group"
inManagedObjectContext:self.managedObjectContext];
Community *newCommunity = [NSEntityDescription
insertNewinsertNewObjectForEntityForName:@Community"
inManagedObjectContext:self.managedObjectContext];
userA.group = newGroup;
userB.group = newGroup;
newGroup.community = newCommunity;
现在userA和userB都属于newGroup,该组是newCommunity中的一个组。 userB链接到该组,因此访问社区非常容易:
Community *aCommunity = userB.group.community;