假如你来到这里,说明你已经開始着手使用swift这门新语言了。

就像Java有Maven一样。Objective-C也有自己的依赖管理工具cocoapods。

可是因为swift才出来不久,眼下非常多cocoapods管理的第三方库依旧是由Objective-C编写的。

为了可以在swift中使用这些类库。须要在Xcode中进行一些配置。

如果你的项目是基于cocoapods的,而且是通过XX.xcworkspace打开的。(Xcode6以上)

为了进行演示,如果导入的第三方库是MBProgressHUD

以下解说怎样在swift中使用该类库。

步骤一:创建头文件(该头文件是连接oc到swift的桥梁)

在project navigator中右击项目,选择New File... -> iOS -> Source -> Header File,给文件命名后(头文件命名随意,如果为Bridging-Header.h)保存。

步骤二:打开该文件,清空里面的内容,然后导入你想要的类库并保存。

#import "MBProgressHUD.h"

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG91bmFvYnVu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

步骤三:

进入到Build Settings,在搜索框中输入bridg。找到Objective-C Bridging Header。选项。把头文件的路径赋值给该选项。如图所看到的:

步骤三:

使用引用的代码,比方在viewDidLoad方法里加入显示运行进度框:

    override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
// 如同pch一样。使用该类库无需在顶部导入该类库的头文件
MBProgressHUD .showHUDAddedTo(self.view, animated: true)
}

执行效果例如以下:

--------------------

-----

-----

须要注意的是。假如不是通过cocoapods引入的类库。而是直接复制到项目中(Build Settings的Objective-C Bridging Header没有赋值过,Xcode会弹出例如以下对话框:

选择Yes后。项目的根文件夹下会自己主动创建一个名字为XXX-Bridging-Header.h的头文件(XXX为你的模块名(module name)一般就是你的product name)。

另外在Build Settings的Objective-C Header File的值也被自己主动设成头文件的路径。

如图所看到的:

仅仅要在自己主动生成的头文件中import你想要的第三方类库后。就能够任意在你的项目源文件中使用它了。

[reference Using Swift with Cocoa and Objective-C ]

注:以上截图来源于Xcode6 beta版本号。在终于正式版公布之前,该截图的内容可能会发生改变。

怎样在swift中使用cocoapods导入的第三方oc库的更多相关文章

  1. 在Swift项目中使用cocoaPods导入第三方OC库

    首先保证你的项目是基于cocoaPods的,并且是通过XX.xcworkspace打开的.cocoaPods安装教程(Xcode6以上) 下面就第三方库MBProgressHUD来讲解如何在Swift ...

  2. 怎样在Swift中使用CocoaPods

    怎样在Swift中使用CocoaPods 它不是神秘的亚马逊区域的部落人用手捡出来的生可可的豆荚,肯定不是!让CocoaPods website来回答可能是最好的: CocoaPods是Cocoa项目 ...

  3. [iOS]如何删除工程里面用cocoapods导入的第三方库

    如何在工程中卸载用cocoapods导入的第三方呢? 1. 打开工程所在文件夹 2. 打开Podfile文件 3. 删除不要的第三方导入命令 4. 然后在回到终端,然后进入到工程目录下,然后更新第三方 ...

  4. swift pod第三方OC库使用use_frameworks!导致#import提示无法找到头文件

    以MBProgressHUD为例子 swift中Podfile文件一般都会加上use_frameworks! 这样就可以直接通过import MBProgressHUD来访问MBProgressHUD ...

  5. iOS开发中使用CocoaPods来管理第三方的依赖程序

    之前也碰到类似的问题,怎样去管理这些第三方的文件,虽然手动添加也不算麻烦. 写这篇文章主要参考了唐巧的博文,链接如下: http://blog.devtang.com/blog/2012/12/02/ ...

  6. sql server 中数据库数据导入到另一个库中

    这篇说了sql语句对于备份的数据库进行还原 ,如果数据量大了还是什么问题,发现我的数据丢失了一些,头疼 sql server 备份还原 下面使用的的数据导入来解决这个问题,因为数据量比较大,导出来的脚 ...

  7. iOS CocoaPods自动管理第三方开源库

    最近在开发中发现在项目中使用了好多第三方库,然而第三方更新的时候本地却不能及时更新.然而CocoaPods则可以管理第三方依赖包的更新,这些“体力活”会被节省好多时间,下面介绍一下CocoaPods的 ...

  8. 怎样在Swift中使用CocoaPods-b

    最近关于CocoaPods有很多的议论.你可能从别的开发者那里听到过,或者在Github的目录中看到过.如果你之前从来没有用过,你可能会问,"CocoaPods到底是什么?" 它不 ...

  9. swift中第三方网络请求库Alamofire的安装与使用

    swift中第三方网络请求库Alamofire的安装与使用 Alamofire是swift中一个比较流行的网络请求库:https://github.com/Alamofire/Alamofire.下面 ...

随机推荐

  1. Android 技巧 - Debug 判断不再用 BuildConfig

    Android 开发中一般会通过 BuildConfig.DEBUG 判断是否是 Debug 模式,从而做一些在 Debug 模式才开启的特殊操作,比如打印日志.这样好处是不用在发布前去主动修改,因为 ...

  2. C++中引用传递与指针传递区别

    C++中引用传递与指针传递区别 在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传递参数是有本质上的不同的: 指针传递参数本质上是值传递的方式,它所传递的是一个地址值.值传递过程 ...

  3. c++ 常识

    1)  功能:格式化字符串输出    说明:format指定输出格式,后面跟要输出的变量        目前printf支持以下格式:          %c        单个字符          ...

  4. c++中的相对路径

           今天在vs2010里读取相对路径下的图片文件出了点问题.于是查了一下相对路径的编程知识,记录下来分享给大家:      问题描写叙述:path=".\\TrainData\\& ...

  5. web.config访问走代理的配置

    <system.net>    <defaultProxy>      <proxy bypassonlocal="False" usesystemd ...

  6. IOS获取preferreces偏好设置plistname名称的方法

    //获取preferreces偏好设置plistname名称的方法1 -(NSArray*)loadSpecifiersFromPlistName:(NSString*)plistName targe ...

  7. Android小经验

    转载自:http://mp.weixin.qq.com/s?__biz=MzA4MjU5NTY0NA==&mid=404388098&idx=1&sn=8bbbba7692dc ...

  8. Microsoft Bot Framework 链接至微信公共号

    如何将 Microsoft Bot Framework 链接至微信公共号   说到 Microsoft Bot Framework 其实微软发布了已经有一段时间了,有很多朋友可能还不太了解,微软Bot ...

  9. Spring Boot 2.x 使用 jpa 连接 mysql

    在spring boot网站上生成一个项目,如图: 我使用的是Maven项目,java使用是jdk8(spring boot 2.x必须要jdk8及以上),dependencies分别输入选择 web ...

  10. HDU 1996汉诺塔VI

    题目: n个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列.由于 发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱 子从下往上的大小仍保持 ...