美文网首页
oc 和 swift 互相调用

oc 和 swift 互相调用

作者: John_LS | 来源:发表于2016-05-18 13:08 被阅读730次

当在项目中同时使用swift 和 object-c 进行编程的时候,需要做一些操作。

1.swift 调用 oc

在Swfit代码中添加OC文件的时候,需要依赖一个bridging header文件,Xcode会在你新建一个OC文件的时候自动帮你创建(项目是使用Swift语言创建的),点击Creat Bridging Header,Xocde就会在新建OC文件的同时帮我们新建一个 xxx-Bridging-Header.h
文件,xxx是你的项目名称(Product Module),然后我们得编辑这个文件才能让Swfit代码调用OC代码


20160322150034060.png

在项目的xxx-Bridging-Header.h文件里,添加需要在Swift里调用的OC文件,然后就可以在Swfit代码中调用了

20160322150044013.png

在项目的 Build Settings 选项里,要确保Swift Compiler选项里有这个Bridging Header文件的设置,路径必须指向文件本身,而不是目录。

20160322150100545.png

在swift文件中,

20160322150108617.png
oc调用swift的方法:

1、首先设置一下Packing

进入TARGETS ->Build Settings -> Packaging 中

设置Defines Module为YES

设置 Product Module Name (这个也可以不设置,直接使用默认就行)

如图:

511196-20160929172322188-1683032430.png

2、设置完之后,在需要引用的oc文件头部 import一下,格式为: #import "工程名-Swift.h"

比如:#import "OrderSystem-Swift.h"

2.在oc中调用swift

当在OC里调用Swift中的代码时,需要依赖一个xcode自动生成的头文件,这个自动生成的头文件定义了项目中所有的Swift文件,这个头文件的命名为 “xxx-Swift.h” ,xxx为项目的名称,此外就不需要再做任何事情了,你只需要在OC代码里导入这么一个文件,就可以跟没事一样拿任意一个Swift中的代码用了

20160322150114124.png

相关文章

  • Swift与Objective-C互相调用(总结)

    公司正式使用swift语言开发项目已经一年多, 现在总结一下swift和OC互相调用的经验 swift调用OC S...

  • Swift与Objective-C互相调用(总结)

    公司正式使用swift语言开发项目已经一年多, 现在总结一下swift和OC互相调用的经验 swift调用OC S...

  • OC与Swift混编

    首先我们用Xcode建立OC的工程,然后逐步配置互相调用。 OC调用Swift 创建swift的controlle...

  • OC和Swift互相调用

    Swift调用OC 1.创建桥接头文件。在Swift项目里创建OC类的时候,会提示创建桥接头文件ProjectNa...

  • OC 和Swift 互相调用

    一、OC调用swift文件 二、swift调用OC文件 三、注意和总结 添加: 四、自定义桥接文件 一、OC调用s...

  • oc 和 swift 互相调用

    当在项目中同时使用swift 和 object-c 进行编程的时候,需要做一些操作。 1.swift 调用 oc ...

  • oc Swift 混编

    oc Swift 混编 oc 项目 混编Swift1.1 oc 调用 Swift 的类 和 方法步骤: ...

  • swift和OC的互相调用

    swift工程中调用OC语言的库 创建swift工程 情况1️⃣(自动创建桥接文件的情况) 创建一个OC的语言文件...

  • iOS swift 和 OC 互相调用

    我只说一下我遇到的问题 ,创建桥接文件之类的网上有很多 就不说了。 我遇到的问题是:我用OC 开发 同事用swif...

  • OC调用swift方法

    现在OC与swift混编的项目越来越多,这就涉及到两种语言互相调用方法的问题。 在swift调用OC方法上还是比较...

网友评论

      本文标题:oc 和 swift 互相调用

      本文链接:https://www.haomeiwen.com/subject/ywkwrttx.html