我在xcode中有一个CoreData(SQLite)数据模型,如下所示:
Friends Table
email
name
username
belongsToGroups
Groups Table
title
peopleInGroup
因此,belongsToGroups
和peopleInGroups
是彼此之间的多对多关系,在代码中均由NSSet
表示。
我使用什么来查询NSSet
我的群组中的人,反之亦然? (我是CoreData的新手)
答案 0 :(得分:0)
使用coredata,您可以轻松完成。假设我们在Groups Table(组)上有一个对象,你想让所有朋友都属于group,你可以这样做:
[基团。 peopleInGroup allObjects]
更多细节:
NSError* error = nil; NSFetchRequest* fetchRequest = [[NSFetchRequest alloc] init]; NSPredicate *predicate; NSEntityDescription *entity; NSArray *fetchedObjects; Group* group; entity = [NSEntityDescription entityForName:[NSString stringWithFormat:@"%@",[Group class]] inManagedObjectContext:self.managedObjectContext]; [fetchRequest setEntity:entity]; predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"(title like[c] \"%@\")" ,title]]; [fetchRequest setPredicate:predicate]; fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error]; if (fetchedObjects.count > 0) { group = [fetchedObjects lastObject]; } return group;
}
NSMutableArray * friends = [NSMutableArray alloc] init]; [friends addObjectsFromArray:[group。 peopleInGroup allObjects]];