iOS XMPP之群组聊天

好友聊天都是通过一个代理来完成,不管收消息还是发消息都要通过这个代理
群组聊天和好友聊天的区别就是jid!!!!!

// 上下文
    NSManagedObjectContext *context = [WCXMPPTool sharedWCXMPPTool].msgStorage.mainThreadManagedObjectContext;

 // 请求对象
 NSFetchRequest *request = [NSFetchRequest
 fetchRequestWithEntityName:@"XMPPMessageArchiving_Message_CoreDataObject"];

 // 1.当前登录用户的JID的消息
 // 2.好友的Jid的消息
NSPredicate *pre = [NSPredicate 
predicateWithFormat:@"streamBareJidStr = %@ AND bareJidStr =
%@",[WCUserInfo sharedWCUserInfo].jid,self.roomJID.bare];
request.predicate = pre; 

 // 时间升序
 NSSortDescriptor *timeSort = [NSSortDescriptor sortDescriptorWithKey:@"timestamp" ascending:YES];  request.sortDescriptors = @[timeSort];

 // 查询
 _resultsContr = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:context sectionNameKeyPath:nil cacheName:nil];
NSError *err = nil;

// 代理
_resultsContr.delegate = self;
[_resultsContr performFetch:&err];

//执行代理 /当收到消息和自己发送消息的时候会执行这个代理 / ResultController的代理
-(void)controllerDidChangeContent:(NSFetchedResultsController
 *)controller{ 
     controller就是我们聊天的数据
 }

你可能感兴趣的:(iOS XMPP之群组聊天)