Core data CoreData:多对多关系
我有两个对象,具有多对多关系 这是我的密码:Core data CoreData:多对多关系,core-data,many-to-many,nspredicate,Core Data,Many To Many,Nspredicate,我有两个对象,具有多对多关系 这是我的密码: + (NSSet *)activitiesSetForMember:(Members *)member inManagedObjectContext:(NSManagedObjectContext *)context{ NSSet *activitiesSet = nil; NSFetchRequest *request = [[NSFetchRequest alloc] init]; request.entity = [NSEntityDesc
+ (NSSet *)activitiesSetForMember:(Members *)member inManagedObjectContext:(NSManagedObjectContext *)context{
NSSet *activitiesSet = nil;
NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = [NSEntityDescription entityForName:@"CompanyActivity" inManagedObjectContext:context];
request.predicate = [NSPredicate predicateWithFormat:@"hasMembers contains %@", member];
NSError *error = nil;
activitiesSet = [[context executeFetchRequest:request error:&error] lastObject];
[request release];
NSLog(@"count: %d", [activitiesSet count]);
//se o array vem vazio (nil), não existe a o tipo de Membro
if (!error && !activitiesSet)
NSLog(@"Error: Member has no Activities related.");
return activitiesSet;
}
如何从选定的
成员
获取所有活动
?我如何构造请求?do give me?正如您可能已经怀疑的那样,您的谓词有问题:
也许你感到困惑是因为你命名关系的方式。这些名称似乎表明,在概念上存在一些混乱。我建议您重命名实体和关系,如下所示:
Members - Member
CompanyActivity - Activity
memberActivity - activities
hasMembers - members
有更好的解决办法。属性活动是否已经完全包含您想要的活动?因此:
activitiesSet = member.activities; // according to my naming scheme
谢谢第一个建议很好。我是CD的新手。第二条评论是正确的。不用去拿了。谢谢,RL