OC与Swift混编②

作者: 三分慢先森 | 来源:发表于2016-09-14 14:10 被阅读127次

写在前面: Swift 代码访问 Objective-C 代码,或者反之。导入外部框架时,请先确保 TARGETS --> Build Settings --> Packaging --> Defines Module 设置为 Yes。

在一个工程中导入一些 Objective-C 文件供 Swift 代码使用时,你需要依赖与 Objective-C 的桥接头文件(Bridging-Header)来暴露给 Swift。当你添加 Swift 文件到现有的 Objective-C 工程(或反之)时,Xcode 会自动提示是否创建桥接文件,点击Yes即可创建以 Bridging-Header 为后缀的桥接文件


20160726185623280.png

注意:1.确保在 Build Settings
-> Objective-C Bridging Header 中设置桥接文件的自身真实路径(文件夹中的路径),而不是它所在的目录,如 工程名/桥接文件名。
2.TARGETS --> Build Settings --> Embedded Content Contains Code 设置为 Yes。

**Swift 调用 OC : **
1.在桥接文件中导入你需要使用的OC头文件,即可在整个工程下的Swift文件中用swift的语法使用OC的代码,就像使用系统自带的Swift类一样。
若 #import "xxxxx.h" 时提示 "xxxxx.h" file not found 则设置 xxxxx.h 文件的Target Membership 为 Public

***OC 调用 Swift : ***
1.在 swift 类名前加上 @objc 关键字 ,如果不行,在@objc后再加上 public 关键字。(我使用时单加一个 public 关键字是没有问题的)
2.在需要调用Swift的OC类中导入 #import "Product Mould Name -Swift.h",当这样导入提示:file not found 时,尝试将头文件改为: #import "Product Mould Name/Product Name -Swift.h" 。
Product Name 和 Product Mould Name 可以在工程下 TARGETS --> Build Settings --> Packaging 条目下找到,导入上面Swift.h 的头文件后可以使用工程下所有的Swift类,前提是要满足第1点。
CMD + 左键 点击进入Swift.h 的头文件,你会发现原有的被 public 修饰的 Swift 类已被自动编译成 OC的代码安静的躺在那里等你调用(如果已经在需要的类名前加上 public 修饰,还是没有发现那个类,请 CMD+B编译一下),需要调用Swift 的属性也是一样的道理。

注意!!!
注意!!!
注意!!!

2017.6.2更新:

Setting.png

1.若需要自行创建桥接文件,创建好文件后需将文件拉至图中1处(让Xcode知道桥接文件的路径)
2.OC调用Swift使用的头文件名称为图中2指向处名称。

相关文章

  • Swift

    混编 15、OC与Swift的混编_海森堡_lichangan的博客-CSDN博客_oc swift 混编[htt...

  • oc Swift 混编

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

  • OC与Swift混编 / Mix & Match

    OC与Swift混编 / Mix & Match OC in Swift 通过Header File创建Bridg...

  • 自制Framework:swift与OC混编,自定义module

    为何要swift与oc混编 在ios开发中,swift与oc的混编,几乎是不可避免的。2014年,Apple在开发...

  • OC与Swift混编

    OC与Swift混编 一.objectivec与Swift相互调用对照 OC interface文件如下 转换后对...

  • Swift与OC混编

    Swift与OC混编:OC文件使用Swift文件时,引入#import (项目名字)-Swift.h。(系统帮我们...

  • iOS开发之一Swift与OC混编

    Swift与OC混编:OC文件使用Swift文件时,引入#import (项目名字)-Swift.h。(系统帮我们...

  • OC和Swift混编手动创建桥接文件及命名空间

    Obj-C混编Swift && Swift混编Obj-C Swift引用OC实现通过桥接头文件,OC引用Swift...

  • OC和Swift混编一

    OC工程下混编 Swift工程下混编请查看OC和Swift混编二 1.建一个OC工程命名为OCTestSwift ...

  • swift与OC混编

    swift与OC混编的总结 现在的swift开发多数会用到混编。swift和oc是通过桥接文件来实现的。无论是在o...

网友评论

    本文标题:OC与Swift混编②

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