我需要搜索ID与
匹配的QuickBlox用户所以我使用以下代码一次触发多个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
课程中没有看到任何告诉我这个结果来自哪个请求的内容。
像请求标记之类的内容应该足够了,但我不确定它是什么,查看文档。
有什么我可以使用的吗?
或者,是否有其他方法可以实现我想要实现的目标(而不是多个请求)?
答案 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])
{
}
}
}
就这么简单,但文档并没有对它说太多,或者说它不应该是可见的。我不得不深入他们的论坛来解决这个问题。