验证数据并通过NSSet循环

时间:2014-02-24 08:37:41

标签: ios core-data predicate foundation nsset

我在xcode中有一个CoreData(SQLite)数据模型,如下所示:

Friends Table
  email
  name
  username
  belongsToGroups

Groups Table
  title
  peopleInGroup

因此,belongsToGroupspeopleInGroups是彼此之间的多对多关系,在代码中均由NSSet表示。

我使用什么来查询NSSet我的群组中的人,反之亦然? (我是CoreData的新手)

1 个答案:

答案 0 :(得分:0)

使用coredata,您可以轻松完成。假设我们在Groups Table(组)上有一个对象,你想让所有朋友都属于group,你可以这样做:

  

[基团。 peopleInGroup allObjects]

更多细节:

  1. 通过标题获取小组
  2. 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;
    
         

    }

    1. 获取群组的所有朋友

        

      NSMutableArray * friends = [NSMutableArray alloc] init];   [friends addObjectsFromArray:[group。 peopleInGroup allObjects]];

    2.