使用解析存储数组并使用它来过滤结果

时间:2015-03-16 13:42:15

标签: ios filter parse-platform

您好我正在创建一个应用程序,用户可以在创建帐户时在一组20个标签之间进行选择。他们选择的标签存储在User类的数组中。我还有一个有群聊的班级,我想根据用户在登录时选择的标签加载群聊。我知道我需要使用.where键来过滤结果。我的想法是访问当前用户" tags-array"然后使用它来过滤结果。我使用的后端是parse.com

1 个答案:

答案 0 :(得分:0)

按照以下步骤来满足您的要求 -

1)当用户正在创建个人资料时 - 1.1)将用户选择的标签添加到NSMutableArray。 1.2)将标签列表保存到用户数据(服务器/云)。

2)用户登录后 2.1)根据列表中的上述标签加载群组聊天。

示例来源 -

- (NSArray *)filterObjects:(NSArray *)objects withTags:(NSArray *)tags
 {
  return [objects filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"tags IN %@", tag]];
}

// given that the 'objects' array is what you get from server
  NSArray *objects = @[
                       @{@"id" : @"1A", @"tag" : @"1"},
                       @{@"id" : @"2A", @"tag" : @"2"},
                       @{@"id" : @"3A", @"tag" : @"3"},
                       @{@"id" : @"1B", @"tag" : @"4"},
                       @{@"id" : @"2B", @"tag" : @"5"},
                       @{@"id" : @"3B", @"tag" : @"6"}
                       ];

  NSArray *filteredObjects = [self filterObjects:objects withTags:@[@"1", @"3", @"4"]];
  NSLog(@"filteredObjects: %@", filteredObjects); // prints them out as dictionaries