what?是什么?
借助它来和openfire服务器来进行交互,它把底层的一些协议封装成api给我们调用。
how?如何使用?
把XmppFramework 集成到我们的项目中,导入之前先看看XmppFramework 的简介
XMPPFramework的
目录结构
这个framewor里面的每个文件夹分别都是什么呢?
Authentication 授权
做登录相关的事情,如用户名密码等。
Categories 分类(对原有的一些类进行扩展)
XMPP自己写的一些分类
Core 核心代码
XMPPStream 就是跟服务器交互数据的时候使用的。(XMPPFramework 和服务器交互的时候使用最多的一个最最核心类),也就是(XMPP流),通过它我们可以发一些请求、消息等等。
XMPPMessage 发送聊天消息。
Extensions 扩展模块
移动客户端的聊天的数据,要保存数据库缓存的操作,这些都不⽤用为我们⾃自⼰己去写
XMPP
帮我实现的额外功能 都是⼀个模块
⽐如好友列表 像好友信息、好友聊天记录这些就是在好友模块中处理
Utilities
工具类 (java程序猿喜欢用这个单词)
Vendor 意思是供应商
相对XMPP,是第三方资源库,是XMPP的第三方,
相对于我们
XMPP
就是三方。
CocoaAsyncSocket
异步
Socket
CocoaLumberjack
⽇志相关的,使⽤的是三方的日志
KissXML XMPP
是以
XML
形式传输的,
XMPP
使用的是三⽅的
XML
解析
当然,还有一个Xcode文件夹,这里面实际上是一些例子使用说明的方法。例如有iPhone版的 desktop桌面版的等等。
保证我们的程序能够运行,然后我们要做的就是把 除了Xcode这个文件夹的其他的都导入到项目工程中。
导入之后,然后运行会报错如下:
这个是什么原因??
少库 和 头文件搜索路径
怎么解决?
导入库,和设置头文件搜索路径即可
怎么加库? (注意:Xcode7之后这些类库都由原来的.a变成.tbd了)
点击项目工程 - -》General(通用) —》往下 —》Linked Frameworks And Libraries - - > 点击➕号 —》libxml2.tbd
再加上另外一个 libresolv.tbd (否则链接过不去会报错)
设置头文件的搜索路径
点击项目工程 - -》Build Settings - -》all - -》 Header Search Paths —》双击它 - -》弹出一个空白菜单,然后点击➕号把libxml2的路径写上 /usr/include/libxml2 即可
再运行一下会发现有8个错,这下子开心了,只要不是报xml的就可以了,因为终于不是报这个错,那就证明这个路径的问题已经解决了,终于过了第一步了!嘿嘿
原因在于:XMPPFramework 里面找不到UIImage 那怎么办?
很简单,让它找着就可以了!
怎么让它找着呢?
难道我一个个文件的加UIK 吗?几百个文件,累s你!
在Xcode5之前,有一个文件叫做 pch 文件 (管一些全局的导入的)。
Xcode6之后只能通过Xcode预留的接口自行创建pch文件了。
因为在XMPPFramework里面大量用到 UIK框架里面的UIImage 等,所以要加一个pct文件让它统一的导入文件
怎么添加pch文件?
点击工程里面的和项目同名的文件夹 右键 - -》New File - -》 在 iOS中的 Other 里面 选择 PCH文件 - -》Next - -》可以默认的名字,把下面的Targets的钩钩打上
在Other中选择 PCH 文件 然后Next下一步
可以默认名字也可以起一个名字,钩钩打上
创建出来的pch文件在Supporting Files文件夹里面了
然后导入我们需要的UIK框架
这时候,Xcode还是找不到PCH文件的,因为路径的问题。所以我们要告诉Xcode,我们新加一个文件你去找一下
点击工程来到Build settings里面搜索 prefix header
然后把 Precompile Prefix Header(默认是No) 改成 YES
接着第二步 双击 Prefix Header
把我们刚刚创建的pch文件的路径填到这里
格式: 工程名/pch文件名.pch
到此为止,XMPPFramework已经顺利导入到项目中了,开开心心写代码去吧!