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的更多相关文章

  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. 一个与Log4j相关的死锁(转)

    这个死锁的原因:一个动作需要两个临界对象.静态同步方法,就是一个临界对象.这种场景,静态同步方法每次只能有一个线程持有.如果存在另一个临界对象,静态同步方法中也需要获取这个临界对象.即一个动作需要两个 ...

  2. 成都大数据Hadoop与Spark技术培训班

    成都大数据Hadoop与Spark技术培训班   中国信息化培训中心特推出了大数据技术架构及应用实战课程培训班,通过专业的大数据Hadoop与Spark技术架构体系与业界真实案例来全面提升大数据工程师 ...

  3. Effective C++ 第二版 8) 写operator new 和operator delete 9) 避免隐藏标准形式的new

    条款8 写operator new 和operator delete 时要遵循常规 重写operator new时, 函数提供的行为要和系统缺省的operator new一致: 1)正确的返回值; 2 ...

  4. openfire学习4------->android客户端聊天开发之聊天功能开发

    前面我们已经把服务器搭建完成,并且在客户端实现了登录了. 和我们使用的QQ一样,想一想,登录成功之后呢?肯定是要有一个好友列表,通过这个列表,我们可以选择我们需要聊天的好友. 这里我们先研究下 xmp ...

  5. ASP.NET - 在线编辑器(KindEditor)

    效果: 项目结构: 前端代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile=" ...

  6. C++ 虚函数表解析(比较清楚,还可打印虚函数地址)

    C++ 虚函数表解析 陈皓 http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制.关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父 ...

  7. 绘制FastMM内存分配流程图(小块内存分配)

    http://blog.csdn.net/henreash/article/details/38751353

  8. java 显示目录下全部文件

    package gao.org; import java.awt.HeadlessException; import java.io.File; import javax.swing.JFileCho ...

  9. hive编程指南--employees表数据定义

    hive编程指南中有个employees表,默认的分隔符比較繁杂,编辑起来不太方便(普通编辑器编辑的控制字符^A等被当成字符串处理了,没有起到分隔符的作用). 收集的解决方式例如以下: http:// ...

  10. Delphi使用大图标编译程序

    在Windows Vista. Windows7以上Windows系统中可以支持大图标显示了,但是Delphi编译出来的程序却只能显示32x32的图标,这使Delphi编译的程序看起来很不专业.下面就 ...