Swift与OC混编

1.首先我们建立一个Swift项目如下图:

2.然后在建立一个SwiftTest.swift文件,这个文件是之后做OC文件调用Swift文件测试用的.

3.在这个Swift项目里面然后建立一个OC文件如下图所示(注意一定是Objective-C):

4. 接下来你会看点下面这个界面出现

看到这个界面之后,点击Create Bridging Header,创建成功,你会神奇的发现工程中多了一个 xxxx-Bridging-Header.h 这个文件, 下图所示

然后我们在Bulid Settings里面看看xxxx-Bridging-Header.h这个配置,如果出现下面这个图就完事了,就可以继续下面的配置了

接下来我们Bulid Settings 中配置Defines Module这些东西为YES即可

5. 到这里我们的所有准备工作都已经完成了, 下面是我们先测试Swift文件中调用OC文件的内容,首先我们现在xxxx-Bridging-Header.h中导入我们的"ShufTest.h",直接#import "ShufTest.h"就OK了, 先在ShufTest中设置一个属性,我们在RookieViewController.swift中打印出来:

ShufTest.m文件代码

```

- (NSString *)name{

             if (_name == nil) {

_name = @"Rookie";

}

return _name;

}

```

RookieViewController.swift文件代码

```

super.viewDidLoad(){

//  这里调用ShufTest类中的属性

let test1 = ShufTest()

print(test1.name)

}

```

下图是打印结果:

6.然后我们在ShufTest类中调用SwiftTest.swift这个类中的test方法,然后在RookieViewController.swift调用ShufTest这个类,打印出swift这个类中的test方法里的内容, * 这里先要在ShufTest.m文件中导入#import "RookieTest-swift.h",  这个文件名为 Product Name(工程名) 加 -swift.h

SwiftTest.swift中代码

```

func swiftTest(){

print("我是swift类中的方法")

}

```

ShufTest.m中代码

```

+ (void)test{

SwiftTest * test = [[SwiftTest alloc]init];

[test swiftTest];

}

```

RookieViewController.swift中代码调用

```

override func viewDidLoad() {

super.viewDidLoad()

ShufTest.test()

}

```

打印结果如下图:


例外说一下,在Swift中使用OC的三方框架,都是用Bridging - header来引入使用的.  看完点赞...😊😊😊

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言: Swift语言出来后,可能新的项目直接使用Swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好...
    疯狂的电脑阅读 6,912评论 0 9
  • 1、创建一个Swift或者是OC的工程 下面以Swift工程举例,OC工程操作是一样的 创建好的时候自动生成我们熟...
    LHsunshine阅读 3,165评论 0 1
  • 概述 利用runtime特性实现iOS项目的组件化开发,是由@casatwy大神提出来的,在他的博客中具体介绍...
    Mr杰杰阅读 5,553评论 2 9
  • 一、OC的代码中使用Swift代码. 第一步: 在工程的Build Settings 中把Defines modu...
    LHsunshine阅读 1,625评论 0 0
  • Swift 已推出数年,与Objective-C相比Swift的语言机制及使用简易程度上更接地气,也大大降低了iO...
    shuigenObba阅读 3,211评论 0 0

友情链接更多精彩内容