美文网首页Swift
OC与Swift混编(OC中使用Swift 与 Swift 中使

OC与Swift混编(OC中使用Swift 与 Swift 中使

作者: 刺客辣条 | 来源:发表于2016-08-07 15:39 被阅读438次

    OC中使用Swift

    1、在项目中右键添加一个 Swift 文件,如TestSwift.swift。

    2、添加后 Xcode 弹出‘是否配置 OC 桥接头文件’的提示,点确认,系统自动生成一个项目名-Bridging-Header.h的文件,如TestSwift-Bridging-Header.h。配置 OC 桥接头文件的提示。

    3、TestSwift-Bridging-Header.h实质上是一个供 Swift 使用的头文件,在这里把所有要暴露给 Swift 的 OC 头文件都添加进去,这样写 Swift 的时候就可以直接使用那些 OC 的类和方法了。

    因为 Swift 本身没有头文件,只有. swift;而 OC 有. h 和. m 文件。有了这个声明,.swift 就可以直接使用 OC 的. h 了。

    4、接下来直接在TestSwift.swift中写 Swift 代码。

    5、在 OC 中使用 Swift,我在AppDelegate.m中使用刚才创建的 Swift 类,那么先要引用 Swift 头文件,即#import "TestSwift-Swift.h",然后在这个 .m 文件中就可以任意使用 Swift 创建的类和方法了:

    6、理解 #import "TestSwift-swift.h"

    其实是项目名-swift.h,这也是 XCode 自动生成的,根据你写的所有 Swift 代码,生成一个 OC 的. h 文件,进行类和方法的声明,这样在 OC 里引用这个头文件后,就相当于引用了所有 Swift 声明,可以直接使用了。

    Swift 中使用 OC


    Swift 代码引用 OC,需依靠Objective-C bridging header将相关文件暴露给 Swift。

    创建Objective-C bridging header有两种方法:

    1、当在 Swift 项目中初次尝试创建 OC 文件时(不能通过拖拽的方式加入项目),系统会自动帮你创建Objective-C bridging header.

    此时除了.h、.m文件之外,会额外多出一个叫做项目工程名-Bridging-Header.h的文件,这个文件中导入的类是可以暴露给 Swift 看到的。要做的,只是#import XXXX.

    2、自己创建Objective-C bridging header

    File > New > File > (iOS or OS X) > Source > Header File

    切记,名字一定要是项目工程名-Bridging-Header.

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

    相关文章

      网友评论

      本文标题:OC与Swift混编(OC中使用Swift 与 Swift 中使

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