Quickblox用户从多个来源搜索

时间:2014-06-07 15:16:01

标签: ios search quickblox

我需要搜索ID与

匹配的QuickBlox用户
  • Facebook ID或
  • Twitter ID或
  • 登录ID

所以我使用以下代码一次触发多个QBUser查询:

[QBUsers usersWithLogins:[NSArray arrayWithObject:m_searchString] delegate:self];
[QBUsers usersWithFacebookIDs:[NSArray arrayWithObject:m_searchString] delegate:self];
[QBUsers usersWithTwitterIDs:[NSArray arrayWithObject:m_searchString] delegate:self];

例如,如果我将搜索字符串作为“Testuser” - 它应该搜索所有具有login = Testuser,FB login = Testuser和Twitter login = Testuser的用户。

根据请求来源(FB / Twitter /我自己的应用程序),我需要将结果放在不同的UI部分。

问题是,我无法区分哪个结果返回哪个请求。

-(void)completedWithResult:(Result*)result
{
    [self showActivityIndicator:NO];
    // QuickBlox User creation result
    if([result isKindOfClass:[QBUUserPagedResult class]])
    {
        // Success result
        if(result.success)
        {
        }
    }
}

我可以看到上面的代码被点击了3次。但我在QBUUserPagedResult课程中没有看到任何告诉我这个结果来自哪个请求的内容。

像请求标记之类的内容应该足够了,但我不确定它是什么,查看文档。

  • 有什么我可以使用的吗?

  • 或者,是否有其他方法可以实现我想要实现的目标(而不是多个请求)?

1 个答案:

答案 0 :(得分:0)

我认为NSString的上下文选项就像每个Quickblox请求的标记一样:

[QBUsers usersWithLogins:[NSArray arrayWithObject:m_searchString] delegate:self context:MY_STRING_CONSTANT];

然后在委托函数中:

- (void)completedWithResult:(Result *)result context:(void *)contextInfo
{  
    if(result.success && [result isKindOfClass:QBUUserPagedResult.class])
    {                
        NSString * _context = (__bridge NSString *) contextInfo;            
        if([_context isEqualToString:MY_STRING_CONSTANT])
        {
        }
    }
}

就这么简单,但文档并没有对它说太多,或者说它不应该是可见的。我不得不深入他们的论坛来解决这个问题。