基于Swift的iOS应用程序开发:创建Swift与Objective-C之间的桥接头文件
2017-07-18 22:39
260 查看
由于很多年以来程序开发人员都是以Objective-C语言作为iOS应用程序的官方开发语言来进行工作的,而Swift目前也只发展到了3.x版本,特别是3.x与2.x之间还存在着巨大的差异,其中相当一部分甚至是基础语法差异,更不要提Swift语言目前还缺乏各种强力的库来做支撑(这一点上Java还是相当强悍的,各种官方和第三方库满天飞),所以现阶段Swift应用程序开发还会经常需要调用Objective-C的库-----苹果官方也认为这是一种值得推荐的方式。
既然Swift可以直接调用Objective-C的库,那我们就需要在它们之间架设一个“桥梁”-----桥街头文件。
为这个新文件添加一个文件名,实际上这个文件名可以任意填写,因为我们在后续开发过程中不会用到它。如下图所示:
这一步非常关键,根据xcode的提示,必须选择“Create Bridging Header”,如下图所示:
另一个文件以“.h”为后缀,这个就是我们要用到的桥街头文件了
然后你就可以在这个文件中使用import关键字来进行程序导入操作了。
举个例子,如果我们想对一个字符串进行MD5加密,我们无需自己去编写Swift程序,也不需要到Git上去翻找,因为Objective-C就有现成的库。所以我们只需要在头文件中引用一下,就像这样:
既然Swift可以直接调用Objective-C的库,那我们就需要在它们之间架设一个“桥梁”-----桥街头文件。
1、在xcode项目中新建Objective-C源文件:
在工程中添加一个新的源文件,注意文件类型必须选择“Objective-C File”,如下图所示为这个新文件添加一个文件名,实际上这个文件名可以任意填写,因为我们在后续开发过程中不会用到它。如下图所示:
这一步非常关键,根据xcode的提示,必须选择“Create Bridging Header”,如下图所示:
2、删除Objective-C源文件
创建完文件后,你会看到在工程中多了两个新的文件,一个以“.m”为后缀,这个是Objective-C的源文件,我们不需要用到它,可以直接删除。另一个文件以“.h”为后缀,这个就是我们要用到的桥街头文件了
3、在桥街头文件中引入Objective-C库
打开桥街头文件,你会看到一句英文注释:Use this file to import your target's public headers that you would like to expose to Swift.大致的意思就是“用这个文件来将导入那些你想要在Swift中使用的程序的头文件”
然后你就可以在这个文件中使用import关键字来进行程序导入操作了。
举个例子,如果我们想对一个字符串进行MD5加密,我们无需自己去编写Swift程序,也不需要到Git上去翻找,因为Objective-C就有现成的库。所以我们只需要在头文件中引用一下,就像这样:
#import <CommonCrypto/CommonDigest.h>
相关文章推荐
- 基于Swift的iOS应用程序开发:以Base64字符串形式上传文件——从iOS选择文件并上传
- 基于Swift的iOS应用程序开发:获得屏幕点击的坐标
- 基于Swift的iOS应用程序开发:字符串String与Data数据类型相互转换
- 基于Swift的iOS应用程序开发:“属性观察器”简介
- 基于Swift的iOS应用程序开发:使用NSMutableURLRequest向服务器发送请求
- 基于Swift的iOS应用程序开发:使用NSUserDefaults存储本地数据
- 基于Swift的iOS应用程序开发:使用URLSession向服务器发送请求
- 基于Swift的iOS应用程序开发:使用表格显示并控制数据(四):使用UIRefreshController实现下拉刷新
- 基于Swift的iOS应用程序开发:使用表格显示并控制数据(二):删除表格中的数据
- 基于Swift的iOS应用程序开发:使用UIImagePickerController调取摄像头进行拍照
- 基于Swift的iOS应用程序开发:解析json格式的数据
- 基于Swift的iOS应用程序开发:通过UITextFieldDelegate快速理解Delegate事件代理
- 基于Swift的iOS应用程序开发:使用表格显示并控制数据(一):显示数据
- 基于Swift的iOS应用程序开发:使用UIImagePickerController从相册选择图片
- 基于Swift的iOS应用程序开发:第三方日历组件CVCalendar简介
- 基于Swift的iOS应用程序开发:使用表格显示并控制数据(三):批量处理表格数据
- 基于Swift的iOS应用程序开发:使用xcode进行iOS应用程序开发时,各种Launch Image尺寸清单
- 基于Swift的iOS应用程序开发:对字符串进行MD5加密
- 【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!2012-6-25日更新iap恢复
- 【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!2012-6-25日更新iap恢复