IOS开发,XMPP实现聊天,即时通讯(一)

原文地址http://blog.csdn.net/kangx6/article/details/7744304

服务器搭建http://blog.csdn.net/leewolf130/article/details/21240987


相关文章1http://blog.csdn.net/leewolf130/article/details/21180853

相关文章2http://blog.csdn.net/leewolf130/article/details/21180909



先看一下我们完成的效果图



首先下载xmppframework这个框架,下载


点ZIP下载

接下来,用Xcode中新建一个工程

将以下这些文件拖入新建工程中



加入?框架


并设置

到这里我们就全部设好了,跑一下试试,看有没有错呢

如果没有错的话,我们的xmppframework就加入成功了。


我们设置我们的页面如下图:


我们的KKViewController.h

[Java]中  查看纯 副本
  1. 进口   
  2.   
  3. @接口 KKViewController:的UIViewController   
  4.   
  5. @财产 (强,非原子)IBOutlet的UITableView * tView;  
  6.   
  7. - (IBAction)帐号:(ID)发送方;  
  8. @结束  

KKViewController.m

[Java]中  查看纯 副本
  1. 导入 “KKViewController.h”  
  2.   
  3. @接口 KKViewController(){  
  4.       
  5.     / /在线用户  
  6.     的NSMutableArray * onlineUsers;  
  7.       
  8. }  
  9.   
  10. @结束  
  11.   
  12. @实施 KKViewController  
  13. @合成 tView;  
  14.   
  15. - (无效)viewDidLoad中  
  16. {  
  17.     [超级 viewDidLoad中];  
  18.     self.tView.delegate =自我;  
  19.     self.tView.dataSource =自我;  
  20.       
  21.     onlineUsers = [NSMutableArray里数组];  
  22.     / /在载入视图,通常从笔尖后的任何额外的设置。  
  23. }  
  24.   
  25. - (无效)viewDidUnload  
  26. {  
  27.     [自我setTView:无];  
  28.     [超级 viewDidUnload];  
  29.     / /释放任何保留主视图的子视图。  
  30. }  
  31.   
  32. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
  33. {  
  34.     返回 (interfaceOrientation = UIInterfaceOrientationPortraitUpsideDown!);  
  35. }  
  36.   
  37. - (IBAction)帐号:(ID)发送方{  
  38. }  
  39.   
  40. 的#pragma标志UITableViewDataSource  
  41.   
  42. - (NSInteger的)的tableView:(UITableView中*)实现代码如下numberOfRowsInSection:(NSInteger的)部分{  
  43.       
  44.     返回 [onlineUsers算];  
  45. }  
  46.   
  47. - (的UITableViewCell *)的tableView:(UITableView的*)的tableView的cellForRowAtIndexPath:(NSIndexPath *)indexPath {  
  48.       
  49.     静态 的NSString *标识符= @ “userCell”;  
  50.     的UITableViewCell *电池= [实现代码如下dequeueReusableCellWithIdentifier:标识符];  
  51.     如果 (细胞==无){  
  52.         电池= [[的UITableViewCell的alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:标识符];  
  53.     }  
  54.       
  55.       
  56.     返回 单元格;  
  57.       
  58.       
  59. }  
  60.   
  61. - (NSInteger的)numberOfSectionsInTableView:(UITableView中*)实现代码如下{  
  62.       
  63.     返回 1;  
  64. }  
  65.   
  66. 的#pragma标志UITableViewDelegate  
  67. - (无效)的tableView:(UITableView的*)的tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {  
  68.       
  69.       
  70. }  
  71.   
  72.   
  73. @结束  
这里的代码相信大家学过UITableView的话应该很熟悉了,如果不知道的话,就查一下UITableView的简单应用学习一下吧

接下来是登录的页面


KKLoginController.m

[Java]中  查看纯 副本
  1. - (IBAction)LoginButton:(id)的发送者{  
  2.       
  3.     如果 ([个体经营validateWithUser:userTextField.text andPass:passTextField.text andServer:serverTextField.text]){  
  4.           
  5.         NSUserDefaults *默认值= [NSUserDefaults standardUserDefaults];  
  6.         [默认值的setObject:self.userTextField.text forKey:USERID];  
  7.         [默认值的setObject:self.passTextField.text forKey:PASS];  
  8.         [默认值的setObject:self.serverTextField.text forKey:SERVER];  
  9.         / /保存  
  10.         [默认同步];  
  11.           
  12.         [自我dismissModalViewControllerAnimated:YES];  
  13.     }否则 {  
  14.         UIAlertView *警报= [[UIAlertView的alloc] initWithTitle:@“提示” 的消息:@“请输入用户名,密码和服务器” 委托:无cancelButtonTitle:@“确定” otherButtonTitles:无,无];  
  15.         [警示秀];  
  16.     }  
  17.   
  18. }  
  19.   
  20. - (IBAction)closeButton:(id)的发送者{  
  21.       
  22.     [自我dismissModalViewControllerAnimated:YES];  
  23. }  
  24.   
  25. - (BOOL)validateWithUser:(的NSString *)userText andPass:(的NSString *)passText andServer:(的NSString *)serverText {  
  26.       
  27.     如果 (userText.length> 0 && passText.length> 0 && serverText.length> 0){  
  28.         返回 YES;  
  29.     }  
  30.       
  31.     返回 NO;  
  32. }  
下面是聊天的页面


这里着重的还是的UITableView

KKChatController.m

[Java]中  查看纯 副本
  1. - (NSInteger的)numberOfSectionsInTableView:(UITableView中*)实现代码如下{  
  2.       
  3.     返回 1;  
  4. }  
  5.   
  6. - (NSInteger的)的tableView:(UITableView中*)实现代码如下numberOfRowsInSection:(NSInteger的)部分{  
  7.     返回 [邮件计数];  
  8. }  
  9.   
  10. - (的UITableViewCell *)的tableView:(UITableView的*)的tableView的cellForRowAtIndexPath:(NSIndexPath *)indexPath {  
  11.       
  12.     静态 的NSString *标识符= @ “msgCell”;  
  13.       
  14.     的UITableViewCell *电池= [实现代码如下dequeueReusableCellWithIdentifier:标识符];  
  15.       
  16.     如果 (细胞==无){  
  17.         电池= [[的UITableViewCell的alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:标识符];  
  18.     }  
  19.       
  20.     的NSMutableDictionary *快译通= [讯息objectAtIndex:indexPath.row];  
  21.       
  22.     cell.textLabel.text = [快译通objectForKey:@“味精”];  
  23.     cell.detailTextLabel.text = [快译通objectForKey:@“寄件人”];  
  24.     cell.accessoryType = UITableViewCellAccessoryNone;  
  25.       
  26.     返回 单元格;  
  27.       
  28. }  
这些都比较简单,相信大家应该都能看得懂

把这些都设置好以后,我们就要着重介绍XMPP了,怕太长了,接下一章吧。

你可能感兴趣的:(XMPP实现聊天,IOS开发,即时通讯)