XMPP实现1

XMPP代码实现

XMPP需要注意的地方

我们主要实现四个功能:

1.注册

2.登录

3.获取好友列表

4.聊天(最重要的功能)

首先我们创建一个工程

然后我们要引入XMPP所需要的框架。

在这里要给大家说明的是,Xcode5和Xcode6之间有一些区别

在Xcdoe5里面 我们需要导入libresolv.dylib框架和libxml2.dylib框架(xmpp是依赖于Xml的)

另外需要在Build Settings 下的Header Search Paths添加路径/usr/include/libxml2(注意是usr不是user)


但是由于Xcode6里面已经内置了框架,所以我们不用添加

我们在引入


这个框架的时候,Xcode6会给我们报错,提示我们UIImage等文件无法识别缺少框架

我们在学习UIImage的时候已经有说过,UIImage是UIKit管理数据源的,而我们的OC是由Foundation来管理的。这里千万要记住

运行一下,OK没问题

我们来搭建一下我们的页面,这次使用storyboard来进行此次的页面搭建

通常我们在使用storyboard的时候只用一个就创建所有的页面,这样的好处呢就是直观

在一个文件里可以看到所有的界面和他们之间的关系

那不好的地方就是一旦你得界面多了那就看起来太混乱,关系太复杂了,我们来看一个例子


这样的话我们打开这个storyboard的话,如果你得电脑性能比较好那打开的还稍微快点

如果你得电脑性能稍微差一点的话打开这个storyboard就需要十到二十几秒的时间,加载的特别慢,所以我们可以把这个storyboard按模块进行拆分

我们这个登录注册就算是一个模块,一般我们登录了以后就保存了我们的登录状态

下次就不需要保存了,我们就不再需要这个登录功能了,所以呢,我们可以把登录注册放在一个storyboard里面

我们的获取好友列表和聊天的功能就可以放在另一个storyboard里面,这样就可以划分这个storyboard文件

结构比较清晰,而且我们第二次进入这个应用的时候就可以不再加载这个登录界面,可以节省一些内存资源,这也是懒加载的一种形式

首先我们创建一个storyboard作为登录和注册的模块


我们创建了storyboard后需要创建相对应的视图控制器来进行关联一下各个界面

然后我们关联一下我们的控件,我们的注册按钮在关联的时候只需要关联一下事件就行了。

这个时候我们已经有了两个storyboard,那如何才能切换呢?

我们是不是需要去进行一个登录状态的判断呢?

判断一下当前的登录状态,如果未登录,我们让他显示登录界面

如果已经登录成功,那让他显示我们的聊天界面或好友列表界面

在我们的Appdelegate里,

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

}

在这个方法内,我们首先创建一个storyboard

UIStoryboard *MainStorybard

然后我们点进去看一看他里面的方法

我们可以看到有一个加号方法,

+ (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil;

他有两个参数

这个Name就是你得storyboard文件名字

还有一个bundle,这个bundle就是你这个storyboard文件所在的bundle

如果你这个文件在mainbundle里面,我们就可以给他一个nil,他就会尝试去mainbundle里去查找,这是一个便利构造方法

下面还有两个实例方法

- (id)instantiateInitialViewController;

- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier;

这两个方法有什么区别呢?

instantiateInitialViewController是什么呢?

我们可以点击我们其中一个storyboard,


设置好了以后我们的NavigationController 前面会有一个箭头

这个方法的功能就是把我们的storyboard设置为主入口

我们现在来完成我们的storyboard对象,name不用给后缀,bundle如果给nil,则默认为是mainBundle

然后获取storyboard中得入口视图控制器对象

如图:


在这里,我们展示之前需要写入[self.window makeKeyAndVisible];

在这段代码中我们有一句

BOOL haveLogin = [[NSUserDefaultsstandardUserDefaults]boolForKey:@“haveLogin”];

这段代码的意思就是判断我们的登陆状态

这里有时会出现一个路径错误

file '/Applications/Xcode 2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIStoryboard.h' has been modified since the precompiled header '/Users/lanou3g/Library/Developer/Xcode/DerivedData/ModuleCache/3V1NN6TL894NX/UIKit-2DYE2I2D1B3GL.pcm' was built

我们点击Finder 前往文件夹/Users/lanou3g/Library/Developer/Xcode/DerivedData/ModuleCache/3V1NN6TL894NX/UIKit-2DYE2I2D1B3GL.pcm

进入里面把UIKit-2DYE2I2D1B3GL.pcm这个文件删除掉,重新编译一下就没问题了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容