objc swift 混编
原链接:http://blog.csdn.net/xuanwenchao/article/details/30226823
在xocde6出来我们大部分代码都是用objective-c写的(部分C/C++),现在出生来了一个新的语言叫swift,那么如何既能使用我们之前的代码,还可以使用新语言呢, 本文就此做一下说明。
关于swift语方的学习可以看文档 The Swift Programming Language 本文假设你已经有所了解,下面基于当前您当前在做的objective-c来做swift扩展, 假设我们想要用swift在原来的工程中做一个新的view界面, 这个view会用到原有的objective-c中的类,最终将这个新的view 再加到我们现有工程中。
首先看官方说明, 两种语是可以同时存在同一个工程中, 不论这个工程是基于哪一种语言创建的, 都可以加入另一个语言,使他们同时存在同一个工程中进行混合编译。
1. 我们添加swift类到现有的objective-c工程中。CMD+N 如下所示
2.点Next后 输入sfLoginView 语言选择swift
3.点Next后 会弹出堤示,是否创建桥接文件,只有第一次创建时才会出现, 创建第二个类时如果之前已经创建就不会有提示了, 该文件被用来在swift中使用objective-c的类时,引入头文件。
4.点击 YES后就创建了两个文件,如下图所示,我的工程名叫SePass,生成的桥接文件叫SePass-Bridging-Header.h
5.打开sfLoginView.swift文件,创建一个我们的swift类,当然你也可以使用playground文件来编辑后再copy到swift文件中。
6. 现在假设我们需要在swift中使用一个objective-c的一个类,叫GTMBase64, 此时我们只要打开刚才生成的桥接文件SePass-Bridging-Header.h 在里面引用我们想要的头文件。
7. 引用头文件后,就可以直接用该类了。
var imageData:NSData =GTMBase64.decodeString(g_DataImageKey)
8. 现在我们用swift编写的类sfLoginView已经完成了,接下来我们要在现有的objective-c中引用我们的swift编写的类了, 因为swift类自己没有头文件,我们无法直接import过来, 所以我们要帮助他生成一个可以引用的头文件,点工程文件->选targets -> BuildingSettings -> Product Module Name 我们输入whatwhatwhat 再将 Defines Module = YES
9. 此时XCode会生成一个头文件,whatwhatwhat-swift.h 我们只在要需要使用sfLoginView的oc.m文件中引用这个头文件后,就可以使用sfLoginView类了
#import "whatwhatwhat-swift.h"
10. 我们再来看下人whatwhatwhat-swift.h中是什么内容
看来是系统帮助我们生成了, 对应swift类的objective-c的类实现方式
11.下面是官方说明, 一旦你导入swift代码到你的工程后,你就可以使用标准ocjective-c来操作swift类
至此任务完成, 匆忙打字编辑,如果有写的不对的, 欢迎批评指正交流。
QQ:407300101
objc swift 混编的更多相关文章
- [ios][swift]swift混编
http://blog.csdn.net/iflychenyang/article/details/8876542(如何在Objective-C的头文件引用C++的头文件) 1.将.m文件扩展名改为. ...
- obeject-c 与 swift 混编
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } p.p2 ...
- Swift语言学习之OC和Swift混编
本文转自http://www.helloswift.com.cn/swiftbase/2015/0112/3469.html iOS OC和Swift混编 1.创建一个swift或者oc的工程:我这里 ...
- Objective-C 和 Swift 混编项目的小 Tips(一)
本文主要闲聊一些 Objective-C 和 Swift 混编项目带来的一些潜规则,希望能帮到对此感到疑惑的朋友.下面我们开始进入主题: 命名 官方 Guide 上只是简单叙述(Using Swift ...
- OC跟Swift混编
OC项目中使用Swift 本文版权归作者所有,如需转载请联系孟祥月 CSDN博客:http://blog.csdn.net/mengxiangyue 独立博客:http://mengxiangyue ...
- OC与swift混编 #import "项目名-Swift.h"失效问题
由于项目多个环境部署,每次改配置比较麻烦,所以线上环境一个TARGETS,内部环境一个TARGETS, 都知道oc和swift混编的时候,会生成一个'项目名-Swift.h'文件,这个文件是隐式的,需 ...
- IOS --- OC与Swift混编
swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编.这个在IOS8中是允许的. ...
- 【转】IOS --- OC与Swift混编
群里大神发的网址,感觉有用就先收录了,暂时没时间看SWIFT,感觉代码简洁,但是可阅读性不是太高,有些代码让系统去判断类型,同样的,我们看代码的时候也得自己去判断类型,或许看多就习惯了,有时间再说吧, ...
- OC与Swift混编
群里大神发的网址,感觉有用就先收录了,暂时没时间看SWIFT,感觉代码简洁,但是可阅读性不是太高,有些代码让系统去判断类型,同样的,我们看代码的时候也得自己去判断类型,或许看多就习惯了,有时间再说吧, ...
随机推荐
- 八数码难题 (codevs 1225)题解
[问题描述] 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给出一种初始布局(初始状态)和目标布局( ...
- 实战Django:简易博客Part1
舍得学习新技能的时候,通常不喜欢傻读书--捧着一本阐述该项技能的书籍,然后傻看,一路看下来,脑子里塞满了新的概念.知识点,头是越来越大,但技能却几乎没掌握半分. 多年来,舍得养成了用做实例来学习新技能 ...
- OC编写使用调试器
OC编写使用调试器 编写代码免不了,Bug.那么Debug就是程序员的必备技能了.本文和大家一起探讨,如何在应用开发编写代码过程中,使用日志项消息:以及使用动作.条件.迭代控制增强断点. 记录信息 在 ...
- open/fopen read/fread write/fwrite区别
fopen /open区别 UNIX环境下的C 对二进制流文件的读写有两套班子:1) fopen,fread,fwrite ; 2) open, read, write这里简单的介绍一下他们的区别.1 ...
- 排序 选择排序&&堆排序
选择排序&&堆排序 1.选择排序: 介绍:选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始 ...
- EMVTag系列10《发卡行公钥证书》
Ø 90 发卡行公钥(IPK)证书 L: NCA -C(有条件):如果支持SDA,DDA CA认证过的发卡行公钥.用于脱机数据认证 Ø 9F32 发卡行公钥指数 L: 1 or 3 -C( ...
- oracle 日志文件管理
OS: [root@b28-122 ~]# more /etc/oracle-releaseOracle Linux Server release 5.7 DB: SQL> select * f ...
- Node.js 异步模式浅析
注:此文是node.js实战读后的总结. 在平常的脚本语言中都是同步进行的,比如php,服务器处理多个请求的方法就是并行这些脚本.多任务处理,多线程等等.但是这种处理方式也有一个问题:每一个进程或者线 ...
- core java 1~4(HelloWorld & 标识符|关键字|数据类型 & 表达式|流程控制 & 数组)
MODULE 1 Java的编译和运行----------------------------编译:javac -d bin src\HelloWorld.java -d:指定编译后的class 文件 ...
- SQL开发技巧(二) 【转】感觉他写的很好
本文转自: http://www.cnblogs.com/marvin/p/DevelopSQLSkill_2.html 本系列文章旨在收集在开发过程中遇到的一些常用的SQL语句,然后整理归档,本系列 ...