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