XMPP添加删除好友

  在现阶段的通信服务中。各种标准都有,因此会出现无法实现相互连通,而XMPP(Extensible Message and presence Protocol)协议的出现,实现了整个及时通信服务协议的互通。

有了这个协议之后,使用不论什么一个组织或者个人提供的即使通信服务,都可以无障碍的与其它的及时通信服务的用户进行交流。

比如google
公司2005年推出的Google talk就是一款基于XMPP协议的即时通信软件。以下我们就谈论一下怎样简单的使用XMPP的好友加入

1、在XMPPFramework.h中将须要用到的头文件打开

2、在storyboard创建好友列表界面和添加好友界面

创建和添加的时候应该注意两者之间的连线:

3、定义查询结果存储器而且进行初始化

NSFetchedResultsController * fetch;

    AppDelegate * delegate=[UIApplication sharedApplication].delegate;

    //获取上下文
    NSManagedObjectContext * context=[delegate.rosterStorage mainThreadManagedObjectContext];

    //获取请求NSFetchRequest
    NSFetchRequest * request=[NSFetchRequest fetchRequestWithEntityName:@"XMPPUserCoreDataStorageObject"];

    //添加排序字段
    NSSortDescriptor * des=[NSSortDescriptor sortDescriptorWithKey:@"sectionNum" ascending:YES];
    [request setSortDescriptors:@[des]];

    //对fetch进行初始化
    fetch=[[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:context sectionNameKeyPath:@"sectionNum" cacheName:nil];

    //设置代理
    [fetch setDelegate:self];

    //開始查询
    [fetch performFetch:nil];

4、创实现tableView的代理方法

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    return fetch.sections.count;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    id<NSFetchedResultsSectionInfo> sections=fetch.sections[section];
    return [sections numberOfObjects] ;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"tabble" ];

    XMPPUserCoreDataStorageObject * user=[fetch objectAtIndexPath:indexPath];
    cell.textLabel.text=user.displayName;

    return cell;
}

//返回分组数据信息。依据字段type来控制当前的状态
-(NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{

  id<NSFetchedResultsSectionInfo> info= [[fetch sections] objectAtIndex:section];

    NSString * type=nil;

    if ([info.name isEqualToString:@"0"]) {
        [email protected]"在线";
    }else {
         [email protected]"离线";
    }

    return type;

}

5、删除好友

-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{

    return YES;
}

//通过花名冊对象对当前的好友进行删除操作
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{

    if (editingStyle==UITableViewCellEditingStyleDelete) {
        AppDelegate * delegate=[UIApplication sharedApplication] .delegate;

        XMPPUserCoreDataStorageObject * user=[fetch objectAtIndexPath:indexPath];

        [delegate.roster removeUser:user.jid];

    }
}

6、添加好友

- (IBAction)add {
    //获取好友名称
    NSString * name=self.friends.text;
     //获取好友名称
    AppDelegate * delegate=[UIApplication sharedApplication].delegate;
    XMPPJID * jid=[XMPPJID jidWithString:name];
    if ([delegate.rosterStorage userExistsWithJID:jid xmppStream:delegate.stream]) {
        NSLog(@"好友已经存在了");
    }else{
        //添加好友
        [delegate.roster subscribePresenceToUser:jid];

    }
}

  想要了解很多其它内容的小伙伴。能够点击查看源代码。亲自执行測试。

  疑问咨询或技术交流,请增加官方QQ群: (452379712)

作者:杰瑞教育

出处:http://blog.csdn.net/jerehedu/

本文版权归烟台杰瑞教育科技有限公司和CSDN共同拥有,欢迎转载,但未经作者允许必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

时间: 2024-10-22 05:29:55

XMPP添加删除好友的相关文章

xmpp获取好友信息和添加删除好友(4)

原始地址: XMPPFrameWork IOS 开发(五)获取好友信息和添加删除好友 好友列表和好友名片 [cpp] view plaincopyprint? [_xmppRoster fetchRoster];//获取好友列表 //获取到一个好友节点 - (void)xmppRoster:(XMPPRoster *)sender didRecieveRosterItem:(NSXMLElement *)item //获取完好友列表 - (void)xmppRosterDidEndPopulat

XMPP增加删除好友

在现阶段的通信服务中,各种标准都有,因此会出现无法实现相互连通,而XMPP(Extensible Message and presence Protocol)协议的出现,实现了整个及时通信服务协议的互通.有了这个协议之后,使用任何一个组织或者个人提供的即使通信服务,都能够无障碍的与其他的及时通信服务的用户进行交流.例如google 公司2005年推出的Google talk就是一款基于XMPP协议的即时通信软件.下面我们就谈论一下如何简单的使用XMPP的好友添加 1.在XMPPFramework

仿QQ聊天软件2.0版

仿QQ聊天软件2.0版 转载请标明出处:牟尼的专栏 http://blog.csdn.net/u012027907     上次课设做了Java版的仿QQ聊天程序,这次软件实训,我们继续完善了仿QQ聊天程序,将上次未完成及不完善的地方进行完善和改进,还新加了部分功能:表情输入.气泡模式.文件传输.截屏.语音聊天.逐步向QQ的基本功能靠齐.通过这次软件实训,又有了很多收获. 一.设计内容及要求 1.1综述 A.系统概述 我们要做的就是类似QQ这样的面向企业内部的聊天软件,基本功能和QQ类似.首先,

IM通讯协议总结之三SIMPLE协议

2.SIMPLE协议 SIMPLE(SIP Instant Messaging and Presence LeveragingExtensions)是SIP的扩展协议,其资料找到一篇中文的文档及一篇RFC3428文档,中文的文档主要讲是对SIMPLE协议的presence介绍,FC3428主要讲对SIP扩展的即时通讯的介绍. 通过查找资料得知应用此协议的软件:原MSN版本4(现已无法使用),无法抓取SIMPLE协议的数据包:外国软件Bria,可以使用,但只能抓取打电话的SIP协议数据包,其它通讯

盼来的仓促果实?腾讯官方Android QQ详测(2010-04-01 03:01)

1 腾讯Android QQ评测;现状与登陆体验 前言: 腾讯QQ估计没有什么网友不认识它,但是它在手机平台上的发展并没有如电脑应用版本更新得那么积极,一个塞班S60 v5的QQ足够吊人胃口.时至近日,腾讯低调地发布了QQ for Android Beta 1.0版(也许正是忙于Android而忽略塞班S60 v5).作为官方御用的版本,让人等待了近一年的时间,过程中"民间"也悄然出现了不少相对完美的QQ版本,如aQQ.WebQQ等.腾讯方面如是说:"腾讯公司针对日渐增多的A

xmpp开发教程(六)-添加和删除好友

这章开发添加和删除好友的模块,首先列出里面主要的方法: 1 [_xmppRoster fetchRoster];//获取好友列表 2 3 //获取到一个好友节点 4 - (void)xmppRoster:(XMPPRoster *)sender didRecieveRosterItem:(NSXMLElement *)item 5 6 //获取完好友列表 7 - (void)xmppRosterDidEndPopulating:(XMPPRoster *)sender 8 9 //到服务器上请求

iOS XMPP:添加XMPPFramework及其他框架(三)

XMPPFramework GitHub: https://github.com/robbiehanson/XMPPFramework 获取源代码 git clone https://github.com/robbiehanson/XMPPFramework.git checkout XMPPFramework 一个最新的 branch 添加依赖 > 拷贝 <XMPPFramework>/Vendor/CocoaLumberjack 到项目根目录下,add files...,选择 Coc

【iOS XMPP】使用XMPPFramewok(一):添加XMPPFramework(XCode 4.6.2)

转自:http://www.cnblogs.com/dyingbleed/archive/2013/05/09/3069145.html XMPPFramework GitHub: https://github.com/robbiehanson/XMPPFramework 获取源代码 git clone https://github.com/robbiehanson/XMPPFramework.git checkout XMPPFramework 一个最新的 branch 添加依赖 > 拷贝 <

UI进阶 即时通讯之XMPP好友列表、添加好友、获取会话内容、简单聊天

这篇博客的代码是直接在上篇博客的基础上增加的,先给出部分代码,最后会给出能实现简单功能的完整代码. UI进阶 即时通讯之XMPP登录.注册 1.好友列表 初始化好友花名册 1 #pragma mark - 管理好友 2 // 获取管理好友的单例对象 3 XMPPRosterCoreDataStorage *rosterStorage = [XMPPRosterCoreDataStorage sharedInstance]; 4 // 用管理好友的单例对象初始化Roster花名册 5 // 好友操