XMPPFramework的使用

来源:互联网 发布:root刷机软件 编辑:程序博客网 时间:2024/06/05 11:43
>0原理:建立dataModel,然后建立NSManagedObject,就会自动建立模型和实体间的映射关系. 用NSPersistentStoreCoordinator可以协调Model和Storage之间的关系;
>1模式:客户端-服务器-客户端.客户端的信息和聊天记录都存储在了服务器上;
>2用XMPPStream实现账户的注册和登录;
>3登陆后通过激活xmppRoster模块,让后通过NSFetchedResultsController可以获取登录用户的全部好友,通过设置NSFetchedResultsController的代理方法可以监听好友的变化,NSFetchedResultsController的创建代码如下:
       // 创建数据请求
        NSFetchRequest *request = [[NSFetchRequest alloc] init];
       
// 实体 -->从哪里获取数据
        NSEntityDescription *entity = [NSEntityDescription entityForName:
@"XMPPUserCoreDataStorageObject"inManagedObjectContext:[XMPPRosterCoreDataStorage sharedInstance].mainThreadManagedObjectContext];
        request.entity = entity;
       
// 谓词 -->获取哪些数据  (获取的是互为好友的情况)
        request.predicate = [NSPredicate predicateWithFormat:
@"subscription = %@",@"both"];
       
// 排序
       
NSSortDescriptor *sort = [NSSortDescriptorsortDescriptorWithKey:@"jidStr"ascending:YES];
        request.sortDescriptors =
@[sort];
       
       
// 创建查询控制器
       
// sectionNameKeyPath 数据库的地址 传递nil代表默认地址
        _fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:[XMPPRosterCoreDataStorage sharedInstance].mainThreadManagedObjectContext sectionNameKeyPath:
nilcacheName:nil];
       
       
// 设置代理  (当数据改变时,会自动调用代理方法)
        _fetchedResultsController.delegate =self;

>4xmppRoster可以设置多波代理,实现多个页面的联动;
>5激活 xmppvCardAvatarModule模块可以获取别人的名片信息,激活 xmppvCardTempModule模块可以获取个人的名片信息;
>6激活XMPPRoom模块可以实现用户加入特定的房间;
0 0
原创粉丝点击