美文网首页
OC项目中使用Swift(转载至孟祥月博客)

OC项目中使用Swift(转载至孟祥月博客)

作者: hope7th | 来源:发表于2016-01-11 23:19 被阅读668次

最近公司的项目开始计划使用Swift,由于原先的工程都是使用OC编写的,不可能一下全部转换成Swift,所以采用OC与Swift混编的方式是最好的选择。这篇文章只是一个简单的介绍,并没有太高深的知识。

我新建了一个演示的OC工程,当然你可以使用你已经存在的OC的工程。如果我们想要在OC工程中使用Swift的代码,Swift的代码默认是使用module管理的,同样这里我们也需要把我们的Swift代码作为一个module暴露给我们的OC工程,修改下面的配置:

上面的修改了一个配置项,有一个Product Module Name在后面会使用。

在工程里面点击File/New/File…,选择iOS/Source/Cocoa Touch Class,按照如下填写创建一个新的文件:

上图中的Subclass of一定要设置为NSObject或其子类,否则OC工程将不会找到该类。

点击确认后会选择保存路径,点击Create,出现如下界面:

这个界面是询问是否创建桥接的头文件,这个文件在Swift调用OC代码的时候比较管用,但是在OC中调用Swift的时候我发现没有什么卵用。

选择Don’t Create按钮。

在Test.swift中添加如下的代码(解释都在注释里面了):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

importUIKit

/*

如果Swift类想要被OC发现,必须继承自NSObject并且使用public标记,并且该类中想要被OC访问的方法也必须使用public标记,具体知识可以去看Swift的访问控制

原因:Swift的代码对于OC来说是作为一个module存在的

当然全局的Swift函数,我还没发现怎么在OC中访问,如果哪位清楚还请告诉一下,谢谢!

*/

publicclassTest:NSObject{

publicfunclog(){

print("这是Swift的方法")

}

}

publicfuncglobalLog(){

print("这是Swift全局的log方法")

}

我们在我们想要调用Swift类的方法里面引入头文件:”Product Module Name-Swift.h”,其中Product Module Name替换成在上面配置项中显示的内容,例如:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#import"ViewController.h"

// 引入Swift头文件

#import"OCAndSwift-Swift.h"

@implementationViewController

- (void)viewDidLoad {

[superviewDidLoad];

// 使用Swift的类

Test*test = [[Testalloc]init];

[test log];

}

@end

这样我们就能够在OC中使用Swift的代码了,最后还要说明一点:”Product Module Name-Swift.h”(例子中的是OCAndSwift-Swift.h),是由编译器自动生成的,如果import后没有提示,编译一下。并且只有在工程中包含至少一个Swift文件的时候,才会自动生成这个文件,所以如果工程中如果没有Swift文件的时候,就算在配置中设置对了,import该文件也会报错。

相关文章

  • OC项目中使用Swift(转载至孟祥月博客)

    最近公司的项目开始计划使用Swift,由于原先的工程都是使用OC编写的,不可能一下全部转换成Swift,所以采用O...

  • OC项目中使用Swift

    Swift和OC 混编的两个方面 1.OC项目中使用Swift2.Swift 项目中使用OC OC项目中使用Swi...

  • OC与Swift混编

    OC与Swift如何实现混编 1、 Swift项目中使用OC 在Swift中引用OC需要借助桥接文件xx brid...

  • swift学习笔记(OC与Swift混编)

    在项目里交叉使用Swift和OC Swift与OC的兼容性使得你可以在项目里使用Swift+OC的方式编写应用程序...

  • iOS-OC与Swift文件相互调用

    项目开发中OC中会使用到Swift文件,也可能在Swift项目中调用OC文件,两种方式略有不同: OC调用Swif...

  • OC与Swift混编

    OC引用Swift 在混合项目中Swift代码默认使用module管理,这时想要OC引用Swift需要把Swift...

  • OC项目中使用Swift

    本文版权归作者所有,如需转载请联系孟祥月CSDN博客:http://blog.csdn.net/mengxiang...

  • Object-C与Swift的混编

    关于swift与oc的混编分为两种情况: 1. 在swift项目中引入OC文件 在swift项目中使用oc的时候需...

  • Swift与OC混编

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

  • iOS开发之一Swift与OC混编

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

网友评论

      本文标题:OC项目中使用Swift(转载至孟祥月博客)

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