注册

EMBuddy中isPendingApproval的疑问_大家来拍砖

EMBuddy中关于isPendingApproval的解释是:A向B发送好友请求,会自动将B添加到A的好友列表中,但isPendingApproval为NO
 
我这里测试了一下, A给B发通知,B中好友通知已经收到了,可是, 调用同步方法

NSArray *buddyList = [[EaseMob sharedInstance].chatManager fetchBuddyListWithError:&error]; if (!error) { NSLog(@"获取成功 -- %@",buddyList); }
 
发现A中得好友列表还是为空,请教下.是为什么
已邀请:
B得接收好友添加请求才会在A的好友列表中显示。
你们的ios的demo中 AddFriendViewController.m 文件中有如下方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
self.selectedIndexPath = indexPath;
NSString *buddyName = [self.dataSource objectAtIndex:indexPath.row];
if ([self didBuddyExist:buddyName]) {
NSString *message = [NSString stringWithFormat:NSLocalizedString(@"friend.repeat", @"'%@'has been your friend!"), buddyName];

[EMAlertView showAlertWithTitle:message
message:nil
completionBlock:nil
cancelButtonTitle:NSLocalizedString(@"ok", @"OK")
otherButtonTitles:nil];

}
else if([self hasSendBuddyRequest:buddyName])
{
NSString *message = [NSString stringWithFormat:NSLocalizedString(@"friend.repeatApply", @"you have send fridend request to '%@'!"), buddyName];
[EMAlertView showAlertWithTitle:message
message:nil
completionBlock:nil
cancelButtonTitle:NSLocalizedString(@"ok", @"OK")
otherButtonTitles:nil];

}else{
[self showMessageAlertView];
}
}
这里有一个用来判断搜索出来的好友 点击添加好友时,判断这个用户是否已经发送过好友请求了.

[self hasSendBuddyRequest:buddyName]
- (BOOL)hasSendBuddyRequest:(NSString *)buddyName
{
NSArray *buddyList = [[[EaseMob sharedInstance] chatManager] buddyList];
for (EMBuddy *buddy in buddyList) {
if ([buddy.username isEqualToString:buddyName] &&
buddy.followState == eEMBuddyFollowState_NotFollowed &&
buddy.isPendingApproval) {
return YES;
}
}
return NO;
}
但是事实上这个方法是没有用得.
 
我想请教一下: 是否这个功能目前的SDK中并没有实现? 还是我哪里没用对.谢谢回复
 
B未接受好友请求之前A的好友列表中是没有B的。
那SDK种的这个参数何时会使用到呢?
isPendingApproval意思是A正在等待B接受好友请求,如果buddy.isPendingApproval为YES,且if ([buddy.username isEqualToString:buddyName] && buddy.followState == eEMBuddyFollowState_NotFollowed && buddy.isPendingApproval)成立,则会提示您已经给这个用户发送过好友请求了,为NO才会发送好友请求。
NSArray *buddyList = [[[EaseMob sharedInstance] chatManager] buddyList];
上面的方法就是获取内存中得好友列表的.并且也是再demo中使用的.
 
按照你最初的说法,A发送了请求,但是B未同意,则A的好友列表中没有B.
 
既然A的好友列表中没有B. 那通过上面请求好友列表的方法取得的数据中肯定没有B,
 
那这个循环判断还有什么意义? 这个变量还有什么意义?
 
望解惑,太纠结这个问题了.谢谢
 
 
isPendingApproval的意思可以理解为A正在等待B接受好友请求,作用是,A已经给B发送了好友请求,不能再重复发送。

要回复问题请先登录注册