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

  1. #import "XYZCustomCell.h"
  2. #import "XYZCustomView.h"
  3. #import "XYZCustomViewController.h"

SWIFT

  1. let myCell = XYZCustomCell()
  2. 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中的代码用了

  1. #import “ProductModuleName-Swift.h”

以上归纳为一个表

  调用Swift代码 调用OC代码
Swift代码 无需声明 #import "ProductModuleName-Swift.h”
OC代码 依赖bridging header文件 #import "Header.h”

转自:http://blog.csdn.net/huangchentao/article/details/35278663

在项目里交叉使用Swift和OC【转】的更多相关文章

  1. 在项目里交叉使用Swift和OC

    Swift and Objective-C in the Same Project 在项目里交叉使用Swift和OC Swift与OC的兼容性使得你能够在项目里使用Swift+OC的方式编写应用程序, ...

  2. 怎么让一个项目里swift与OC可以兼容混合开发?

    在苹果推出了swift语言之后,很多人担心OC很快会被取代,但是苹果方面表示2年内不会摒弃OC.但现在也快了啊.有的开发团队已经开始基于swift开发,但是有很多旧的框架还没来得及用swift写出来, ...

  3. 在OC项目中实现swift与oc混编 相互引用

    --------------------------------------------------------Begin--------------------------------------- ...

  4. 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. ...

  5. swift调用oc语言文件,第三方库文件或者自己创建的oc文件——简书作者

    Swift是怎样调用OC的第三方库的呢?请看下面详情: 情况一: 1.首先打开Xcode,iOS->Application->Single View Application, 选Next. ...

  6. iOS开发--混编篇&swift与OC混合使用

    Swift与OC混合使用 swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编. ...

  7. iOS8开发~Swift(五)Swift与OC混编

    一.概要 首先看<The Swift Programming Language>中提到"Swift's compatibility with Objective-C lets y ...

  8. 在swift调用OC的第三方库

    https://www.jianshu.com/p/4799ac1d7dce 2017.06.02 23:55* 字数 275 阅读 1619评论 0喜欢 3 环境:xcode 8.3.2 系统: M ...

  9. Swift与OC区别

    一.Swift与OC区别: 1.swift程序的入口是UIApplicationMain; 2.OC的类是以.h和.m组成的;swift是一.swift结尾的; 3.OC的类是以@interface和 ...

随机推荐

  1. jquery属性过滤选择器

    http://www.jb51.net/article/46279.htm   $("div[id]").addClass("highlight"); //查找 ...

  2. xenu工具介绍

    Xenu Link Sleuth 也许是你所见过的最小但功能最强大的检查网站死链接的软件了.你可以打开一个本地网页文件来检查它的链接,也可以输入任何网址来检查.它可以分别列出网站 的活链接以及死链接, ...

  3. [题解]扫雷Mine

    // 此博文为迁移而来,写于2015年2月6日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102vrft.html 1088 ...

  4. [深入浅出Windows 10]分屏控件(SplitView)

    4.18 分屏控件(SplitView) 分屏控件(SplitView)是Windows 10新增的控件类型,也是Windows 10通用应用程序主推的交互控件,通常和一个汉堡按钮搭配作为一种抽屉式菜 ...

  5. ubuntu 装机及装机以后干的事情

    一.装系统 下载ubuntu镜像 ubuntu 16.04 镜像下载(linux公社) 安装unetbootin (u盘启动盘制作工具) sudo apt-get install unetbootin ...

  6. Func<T>与Action<T>委托泛型介绍:转

    .Net 3.5之后,微软推出了Func<T>与Action<T>泛型委托.进一步简化了委托的定义. Action<T>委托主要的表现形式如下: public de ...

  7. org.openqa.selenium.StaleElementReferenceException

    org.openqa.selenium.StaleElementReferenceException如何解啊.什么原因造成的,貌似有时会出现,有时不会出现

  8. android开发期间使用真机调试但系统无法识别出真机

    前言 前些天重装了系统,好不容易把所有的软件装好,结果发现打开android studio真机调试却出了问题. 一.症状: 1.手机端设置完全没问题(打开了调试模式......) 2.电脑端右下角不出 ...

  9. [CareerCup] 17.12 Sum to Specific Value 和为特定数

    17.12 Design an algorithm to find all pairs of integers within an array which sum to a specified val ...

  10. java.lang.String

    1.String 是一个类,广泛应用于 Java 程序中,相当于一系列的字符串.在 Java 语言中 strings are objects.创建一个 strings 最直接的方式是 String g ...