在项目里交叉使用Swift和OC
Swift and Objective-C in the Same Project
在项目里交叉使用Swift和OC
Swift与OC的兼容性使得你能够在项目里使用Swift+OC的方式编写应用程序,称为混合+匹配(mix and match),用这样的方式能够一边使用享受新语言的高速特性,一边无缝的接合你已有的OC代码(原文听起来好NB的样子,事实上也就那么回事),无论项目最初是用OC编写的还是新建的Swift项目,都能够在这个项目里用OC和Swift混合继续开发
Importing Objective-C into Swift
在Swfit代码中加入OC文件的时候,须要依赖一个bridging header文件,Xcode会在你新建一个OC文件的时候自己主动帮你创建(项目是使用Swift语言创建的),点击yes,Xocde就会在新建OC文件的同一时候帮我们新建一个 xxx-Bridging-Header.h
文件,xxx是你的项目名称(Product Module),然后我们得编辑这个文件才干让Swfit代码调用OC代码
在项目的xxx-Bridging-Header.h文件中,加入须要在Swift里调用的OC文件,然后就能够在Swfit代码中调用了
OBJECTIVE-C
#import "XYZCustomCell.h"
#import "XYZCustomView.h"
#import "XYZCustomViewController.h"
SWIFT
let myCell = XYZCustomCell()
myCell.subtitle = "A custom cell"
在项目的 Build Settings 选项里,要确保Swift Compiler选项里有这个Bridging Header文件的设置,路径必须指向文件本身,而不是文件夹。
Importing Swift into Objective-C
当在OC里调用Swift中的代码时,须要依赖一个xcode自己主动生成的头文件,这个自己主动生成的头文件定义了项目中全部的Swift文件,这个头文件的命名为 “xxx-Swift.h” ,xxx为项目的名称,此外就不须要再做不论什么事情了,你仅仅须要在OC代码里导入这么一个文件,就能够跟没事一样拿随意一个Swift中的代码用了
#import “ProductModuleName-Swift.h”
以上归纳为一个表
| 调用Swift代码 | 调用OC代码 | |
| Swift代码 | 无需声明 | #import "ProductModuleName-Swift.h” |
| OC代码 | 依赖bridging header文件 | #import "Header.h” |
在项目里交叉使用Swift和OC的更多相关文章
- 在项目里交叉使用Swift和OC【转】
Swift and Objective-C in the Same Project在项目里交叉使用Swift和OC Swift与OC的兼容性使得你可以在项目里使用Swift+OC的方式编写应用程序,称 ...
- 怎么让一个项目里swift与OC可以兼容混合开发?
在苹果推出了swift语言之后,很多人担心OC很快会被取代,但是苹果方面表示2年内不会摒弃OC.但现在也快了啊.有的开发团队已经开始基于swift开发,但是有很多旧的框架还没来得及用swift写出来, ...
- 在OC项目中实现swift与oc混编 相互引用
--------------------------------------------------------Begin--------------------------------------- ...
- ios项目里扒出来的json文件
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...
- swift调用oc语言文件,第三方库文件或者自己创建的oc文件——简书作者
Swift是怎样调用OC的第三方库的呢?请看下面详情: 情况一: 1.首先打开Xcode,iOS->Application->Single View Application, 选Next. ...
- iOS开发--混编篇&swift与OC混合使用
Swift与OC混合使用 swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编. ...
- iOS8开发~Swift(五)Swift与OC混编
一.概要 首先看<The Swift Programming Language>中提到"Swift's compatibility with Objective-C lets y ...
- 在swift调用OC的第三方库
https://www.jianshu.com/p/4799ac1d7dce 2017.06.02 23:55* 字数 275 阅读 1619评论 0喜欢 3 环境:xcode 8.3.2 系统: M ...
- Swift与OC区别
一.Swift与OC区别: 1.swift程序的入口是UIApplicationMain; 2.OC的类是以.h和.m组成的;swift是一.swift结尾的; 3.OC的类是以@interface和 ...
随机推荐
- response.sendRedirect 传递参数的问题
response.sendRedirect是通过浏览器来做转向的. 假设在A.jsp页面设置request.setAttribute("username","admin& ...
- 2015 Multi-University Training Contest 8
Hdu 5385 The path 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5385 题意:有一个联通的有向图,d(x)用来记录从1点到x点的最短 ...
- Perl BEGIN块和END块
[root@wx03 5]# cat a5.pl END {print cccccccccccc."\n"}; print "aaaaaaaaaaaaa\n"; ...
- C++基础之二:常量指针和指针常量
1.常量指针 定义:具有只能够读取内存中数据,却不能够修改内存中数据的属性的指针,称为指向常量的指针,简称常量指针. 声明:const int * p; 注:可以将一个常量的地址赋值给一个对应类型的常 ...
- OpenStreetMap初探(一)——了解OpenStreetMap
1. 開始关注OpenStreetMap始于此博文:<微软对抗谷歌的秘密武器:开源地图OpenStreetMap> http://news.csdn.net/a/20120328/313 ...
- VC/MFC 使edit控件不能进行粘贴操作
这里使用消息拦截的方法 BOOL PersonDlg::PreTranslateMessage(MSG* pMsg) { if (GetDlgItem(IDC_EDIT_USER_ID)->m_ ...
- ntohs, ntohl, htons,htonl的比较和详解
在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题. 这时就可能用到htons(), ntohl(), ntohs(),htons()这4个网络字节顺序与本地字节顺序之间的转换函数 ...
- svn跨机备份
#!/bin/sh svn_bak_dir='/svndata/cloudil' svn_server='svn://172.16.40.200:9999' user=adminread pass=a ...
- 与众不同 windows phone (20) - Device(设备)之位置服务(GPS 定位), FM 收音机, 麦克风, 震动器
原文:与众不同 windows phone (20) - Device(设备)之位置服务(GPS 定位), FM 收音机, 麦克风, 震动器 [索引页][源码下载] 与众不同 windows phon ...
- Spring配置DataSource数据源
在Spring框架中有例如以下3种获得DataSource对象的方法: 1.从JNDI获得DataSource. 2.从第三方的连接池获得DataSource. 3.使用DriverManagerDa ...