Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2206107
  • 博文数量: 866
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10638
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/landuochong

文章分类

全部博文(866)

文章存档

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(70)

2011年(103)

2010年(360)

2009年(283)

2008年(22)

分类: 嵌入式

2012-10-19 10:20:11

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


点ZIP下载

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

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



我们不需要整合facebook,所以文件夹下的facebook相关的可以去掉

Now let’s add the frameworks needed. We select the project in the navigator, then we select the target and we open “Link Binary With Libraries” as shown in the figure.

Adding Frameworks for Proejct

We have to add lots of framework as shown in the following figure:

List of Frameworks needed for the Project

Finally, to compile a project we have to tweak some build settings. Changes have to be added to both the project and the target. First, we find the “Header Search Paths” and we specify the library needed to parse xml: ‘/usr/include/libxml2′

Then we select “Other Linker Flags” and the add the following flag: “-lxml2″.

Including xml2 library

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

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


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


我们的KKViewController.h

  1. #import   
  2.   
  3. @interface KKViewController : UIViewController  
  4.   
  5. @property (strong, nonatomic) IBOutlet UITableView *tView;  
  6.   
  7. - (IBAction)Account:(id)sender;  
  8. @end  

KKViewController.m

  1. #import "KKViewController.h"  
  2.   
  3. @interface KKViewController (){  
  4.       
  5.     //在线用户  
  6.     NSMutableArray *onlineUsers;  
  7.       
  8. }  
  9.   
  10. @end  
  11.   
  12. @implementation KKViewController  
  13. @synthesize tView;  
  14.   
  15. - (void)viewDidLoad  
  16. {  
  17.     [super viewDidLoad];  
  18.     self.tView.delegate = self;  
  19.     self.tView.dataSource = self;  
  20.       
  21.     onlineUsers = [NSMutableArray array];  
  22.     // Do any additional setup after loading the view, typically from a nib.  
  23. }  
  24.   
  25. - (void)viewDidUnload  
  26. {  
  27.     [self setTView:nil];  
  28.     [super viewDidUnload];  
  29.     // Release any retained subviews of the main view.  
  30. }  
  31.   
  32. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
  33. {  
  34.     return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);  
  35. }  
  36.   
  37. - (IBAction)Account:(id)sender {  
  38. }  
  39.   
  40. #pragma mark UITableViewDataSource  
  41.   
  42. -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{  
  43.       
  44.     return [onlineUsers count];  
  45. }  
  46.   
  47. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{  
  48.       
  49.     static NSString *identifier = @"userCell";  
  50.     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];  
  51.     if (cell == nil) {  
  52.         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];  
  53.     }  
  54.       
  55.       
  56.     return cell;  
  57.       
  58.       
  59. }  
  60.   
  61. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{  
  62.       
  63.     return 1;  
  64. }  
  65.   
  66. #pragma mark UITableViewDelegate  
  67. -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{  
  68.       
  69.       
  70. }  
  71.   
  72.   
  73. @end  
这里的代码相信大家学过UITableView的话应该很熟悉了,如果不知道的话,就查一下UITableView的简单应用学习一下吧

接下来是登录的页面


KKLoginController.m

  1. - (IBAction)LoginButton:(id)sender {  
  2.       
  3.     if ([self validateWithUser:userTextField.text andPass:passTextField.text andServer:serverTextField.text]) {  
  4.           
  5.         NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];  
  6.         [defaults setObject:self.userTextField.text forKey:USERID];  
  7.         [defaults setObject:self.passTextField.text forKey:PASS];  
  8.         [defaults setObject:self.serverTextField.text forKey:SERVER];  
  9.         //保存  
  10.         [defaults synchronize];  
  11.           
  12.         [self dismissModalViewControllerAnimated:YES];  
  13.     }else {  
  14.         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"请输入用户名,密码和服务器" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];  
  15.         [alert show];  
  16.     }  
  17.   
  18. }  
  19.   
  20. - (IBAction)closeButton:(id)sender {  
  21.       
  22.     [self dismissModalViewControllerAnimated:YES];  
  23. }  
  24.   
  25. -(BOOL)validateWithUser:(NSString *)userText andPass:(NSString *)passText andServer:(NSString *)serverText{  
  26.       
  27.     if (userText.length > 0 && passText.length > 0 && serverText.length > 0) {  
  28.         return YES;  
  29.     }  
  30.       
  31.     return NO;  
  32. }  
下面是聊天的页面


这里着重的还是UITableView

KKChatController.m

  1. -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{  
  2.       
  3.     return 1;  
  4. }  
  5.   
  6. -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{  
  7.     return [messages count];  
  8. }  
  9.   
  10. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{  
  11.       
  12.     static NSString *identifier = @"msgCell";  
  13.       
  14.     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];  
  15.       
  16.     if (cell == nil) {  
  17.         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier];  
  18.     }  
  19.       
  20.     NSMutableDictionary *dict = [messages objectAtIndex:indexPath.row];  
  21.       
  22.     cell.textLabel.text = [dict objectForKey:@"msg"];  
  23.     cell.detailTextLabel.text = [dict objectForKey:@"sender"];  
  24.     cell.accessoryType = UITableViewCellAccessoryNone;  
  25.       
  26.     return cell;  
  27.       
  28. }  
这些都比较简单,相信大家应该都能看得懂

阅读(805) | 评论(0) | 转发(0) |
0

上一篇:ios学习笔记(一)

下一篇:ios后台运行

给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册