一些准备
Swifty
这是JamalK做的一款swift语言的登录页,程序是用OC写的,通过实践说明swift和OC兼容的很好~
TSPopoverView
像iPad那样弹出的popover气泡式菜单。由于iPhone默认弹出popover是页面替换而不是气泡式
https://github.com/takashisite/TSPopover
原来的样子:
我们把它当作状态选择的菜单来做,做出来的效果:
UUChatTableView
这是一个封装好的聊天窗口,提供了文字NSString,图片UIImage和语音NSData的接口, 所以我们只需要对其界面进行轻微修改,并使其与我们xmpp得到与发送数据接口实现对接。
最重要的XMPPFramework,在用Xcode7.1.1的时候我在Github上下载到的最新框架编译起来有些问题,看到上面issue反馈的时候别人用老版本的框架用CocoaPods整合直接使用,我就是通过这种方法使用的。(什么是CocoaPods?请参考http://code4app.com/article/cocoapods-install-usage)
Start!
导入框架
首先建立我们的项目,就用Single View Application。
建立好之后,我们就可以用CocoaPods来整合XMPPFramework了。
http://blog.youkuaiyun.com/zesicus/article/details/50298297我想做到这里成功的话你已经导入了XMPPFramework框架了,无论你是编译通过了,还是通过cocoapods导入,看上去应该是这样了
成功的话你就可以在Habber里面导入头文件了
#import <XMPP.h>
如果是通过cocoapods导入的话,记得要把两个projects的Architectures改成一致,不然真机调试的话可能不能通过。
Habber -> build settings -> Architectures
Pods -> build settings -> Architectures
导入TSPopover, UUChatTableView
我所导入的libraries:
添加pch支持(如果不知道怎么添加pch请看: Xcode7 建立 pch 文件 (预编译头文件))
#ifndef PrefixHeader_pch #define PrefixHeader_pch #import <UIKit/UIKit.h> #import <Foundation/Foundation.h> #import "ACMacros.h" #endif
导入swifty
或许这里我不应该称为导入,我们需要在storyboard中重画这个界面,当然这里的重画意思是把UIImageView,UITextField等几个空间粘贴在storyboard中新画的UIViewController当中。但注意不要整个viewController都粘贴过来, 因为这个界面是作者一年前写的,用的Xcode版本比较老, storyboard已经更新了,所以他的旧版本的viewController粘贴过来会导致形变。 你可以自己运行demo查看一下。 我已经给他posted an issue,他说会更新的,也许你下到的会是他更新过的版本。^_^
界面在storyboard中重构完成后,就可以把他的swift类文件直接拖到我们的目录中了,拖的过程中Xcode会问你导入swift进入OC工程要不要建立桥接文件,这里OK建立一个就是了。
关于OC和Swift混合编程我参考的这篇文章,应该算是直接从苹果的帮助文档翻译过来的,简单易懂:在项目里交叉使用Swift和OC初步的准备工作已经完成,我们的目录看起来是这样的:
(当然这是我的目录,你可以参考下)
下一篇就开始上代码!