OC Swift 混编
2016-04-13 17:56
274 查看
对于已经工作的开发者,并不适合也没有条件从一个全新的swift项目开始,进行开发. 虽然网上关于swift和oc混合编程的教程比较多,但是大多是基于 swift项目的,所以对咱们 OCer的参考价值有一定折扣.
现在swift虽然仍然存在很多缺陷,但是鉴于苹果的强势,是时候在项目中把简单的功能交给swift了,给自己,给项目,给swift一个缓冲区,都是极好的.
说了这么多,开始上代码.
现在的背景是: 已经有一个oc项目了,我想要加入 swfit,并且实现 oc调用 swift ,swift调用oc .
1.新建一个swift文件
2.接下来会询问你是否建立桥接文件,点击是 ,那么我后面的就是多余的了,所以选择取消,我们手动建立桥接文件
3.手动建立桥接文件:新建头文件
关于命名: 有经验的人都知道,这个头文件是项目公用的,同时如果自动创建,文件名也是 :
项目名-Bridging-Header.h
但是因为我现在的项目名是中文,所以我自己命名了一下.
4. 配置头文件
在build setting里面搜索 swift ,根据实际情况进行配置:
注意:是相对于工程文件所在的相对路径.从 Finder里面看,不要让项目中得group扰乱你的判断
5.在头文件中引入需要的 oc头文件,这里我就用 UIKit了
6.编写代码
可以看到,我们可以使用UIKit的类了
注意:关于自定义类,希望有个好的命名规范,那么在混合编程中,你将受益无穷
7.oc调用swift
现在因为测试我想把窗口的根控制器设置为我的swift的那个.
因为swift没有头文件,所以不好办了...
其实,系统默认给我们生成了头文件(需要我们的swift类是NSObject的直接或者间接子类),我们只要引入
项目名-Swift.h
没办法了,我的项目名是中文...
引入:
8.使用 swift的类
9.运行
一切正常
现在swift虽然仍然存在很多缺陷,但是鉴于苹果的强势,是时候在项目中把简单的功能交给swift了,给自己,给项目,给swift一个缓冲区,都是极好的.
说了这么多,开始上代码.
现在的背景是: 已经有一个oc项目了,我想要加入 swfit,并且实现 oc调用 swift ,swift调用oc .
1.新建一个swift文件
2.接下来会询问你是否建立桥接文件,点击是 ,那么我后面的就是多余的了,所以选择取消,我们手动建立桥接文件
3.手动建立桥接文件:新建头文件
关于命名: 有经验的人都知道,这个头文件是项目公用的,同时如果自动创建,文件名也是 :
项目名-Bridging-Header.h
但是因为我现在的项目名是中文,所以我自己命名了一下.
4. 配置头文件
在build setting里面搜索 swift ,根据实际情况进行配置:
注意:是相对于工程文件所在的相对路径.从 Finder里面看,不要让项目中得group扰乱你的判断
5.在头文件中引入需要的 oc头文件,这里我就用 UIKit了
6.编写代码
可以看到,我们可以使用UIKit的类了
注意:关于自定义类,希望有个好的命名规范,那么在混合编程中,你将受益无穷
7.oc调用swift
现在因为测试我想把窗口的根控制器设置为我的swift的那个.
因为swift没有头文件,所以不好办了...
其实,系统默认给我们生成了头文件(需要我们的swift类是NSObject的直接或者间接子类),我们只要引入
项目名-Swift.h
没办法了,我的项目名是中文...
引入:
8.使用 swift的类
9.运行
一切正常
相关文章推荐
- swift url 解码(不是最新,swift变得太快了)
- 使用Swift实现iOS App中解析XML格式数据的教程
- Swift 关键字
- Swift闭包详解
- UIKit框架-基础控件Swift版本: 6.UITextField方法/属性详解
- 【Swift学习】Swift编程之旅(四)基本运算符
- Swift基础--调用第三方OC项目
- swift判断是否已插入耳塞
- Swift编程中的switch...case语句实例解析
- 在方法中使用闭包
- 详解Swift的switch...case语句中break关键字的用法
- 深入解析Swift中switch语句对case的数据类型匹配的支持
- iOS开发点滴 - 如何通过Segue写代码传递数据从一个ViewController到另一个ViewController(Swift代码)
- iOS开发点滴 - 如何通过Segue写代码传递数据从一个ViewController到另一个ViewController(Swift代码)
- 举例讲解Swift编程中switch...case语句的用法
- Swift中的条件切换语句switch...case学习教程
- swift:自定义UICollectionViewFlowLayout
- dyld: Library not loaded: @rpath/libswiftCore.dylib 错误的解决
- swift重载
- swift map filter reduce函数