XMPPFramework的使用

>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 = [ NSSortDescriptor sortDescriptorWithKey : @"jidStr" ascending : YES ];
        request.sortDescriptors =
@[ sort ] ;
       
       
// 创建查询控制器
       
// sectionNameKeyPath 数据库的地址   传递 nil 代表默认地址
        _fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:[XMPPRosterCoreDataStorage sharedInstance].mainThreadManagedObjectContext sectionNameKeyPath:
nil cacheName: nil ];
       
       
// 设置代理   ( 当数据改变时 , 会自动调用代理方法 )
        _fetchedResultsController.delegate = self;

>4xmppRoster可以设置多波代理,实现多个页面的联动;
>5激活 xmppvCardAvatarModule模块可以获取别人的名片信息,激活 xmppvCardTempModule模块可以获取个人的名片信息 ;
>6激活 XMPPRoom模块可以实现用户加入特定的房间;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值