获取联系人
需要 import 的文件
#import "XMPPRoster.h"
#import "XMPPRosterMemoryStorage.h"
增加对应的 callback 和 属性
@property (strong,nonatomic) XMPPRosterMemoryStorateCallBack xmppRosterscallback;
@property (strong,nonatomic) XMPPRosterMemoryStorage *xmppRosterMemoryStorage;
@property (strong,nonatomic) XMPPRoster *xmppRoster;
在 MyXMPP 添加 FetchRoster 方法
- (void)getRosterList:(XMPPRosterMemoryStorateCallBack)callback {
self.xmppRosterMemoryStorage = [[XMPPRosterMemoryStorage alloc] init];
self.xmppRoster = [[XMPPRoster alloc] initWithRosterStorage:self.xmppRosterMemoryStorage];
[self.xmppRoster addDelegate:self delegateQueue:dispatch_get_main_queue()];
[self.xmppRoster activate:self.xmppStream];
NSLog(@"fetchRoster");
self.xmppRosterscallback = callback;
[self.xmppRoster fetchRoster];
}
在 fetchRoster 方法后回调
// fetchRoster 后调用。
- (void)xmppRosterDidPopulate:(XMPPRosterMemoryStorage *)sender{
if(self.xmppRosterscallback){
self.xmppRosterscallback(sender);
}
}
在登陆成功后,去获取联系人
[appDelegate.myXMPP getRosterList:^(XMPPRosterMemoryStorage *rosterList) {
NSArray *users = [rosterList sortedUsersByName];
for (XMPPUserMemoryStorageObject *user in users) {
NSLog(@"%@", user.displayName);
}
}];
同步代码地址:https://github.com/dapang/XMPP_For_iPhone