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];
// 设置代理 (当数据改变时,会自动调用代理方法)
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
- xmppFrameWork的使用
- XMPPFramework的使用
- 使用xmppframework
- XMPPFrameWork 使用
- ios使用XMPPFramework框架的配置
- XMPP使用---XMPPFramework(一)
- XMPPFramework使用相关
- iOS 的 XMPPFramework 简介
- iOS 的 XMPPFramework 简介
- iOS 的 XMPPFramework 简介
- iOS 的 XMPPFramework 简介
- iOS 的 XMPPFramework 简介
- iOS的xmppframework
- iOS的xmppframework
- iOS 的 XMPPFramework 简介
- iOS 的 XMPPFramework 简介
- iOS 的 XMPPFramework 简介
- iOS 的 XMPPFramework 简介
- 设计模式
- 【代码笔记】iOS-下拉菜单
- 引用的特点和注意事项
- hdu1269(强联通分量模版)
- .Net Core[译文]
- XMPPFramework的使用
- R语言——Plot{graphics}
- 彻底理解View事件体系!
- encrypt加密 decrypt解密 函数
- STL之multiset
- [Leetcode]83. Remove Duplicates from Sorted List
- jenkins+git+maven+centos7自动化构建部署项目(一)
- Ubuntu 火狐浏览器中,鼠标选择文字被删除的解决办法
- 通过JS判断Jsion中是否存在某些字段