做了以下几个实验
验证Swift和OC的项目可以使用任意语言开发的动态库
1、创建了一个Swift语言的动态库
2、创建了一个OC语言的动态库
3、创建了一个SwiftApp项目,在项目中同时使用Swift和OC的动态库
4、创建了一个OCApp项目,在项目中同时使用Swift和OC的动态库
验证同一项目中(OC/Swift)同时使用Swift类和OC类
1、在Swift项目中创建OC的类并正确使用
2、在OC的项目中创建Swift的类并正确使用
验证同一动态库中(OC/Swift)同时使用Swift类和OC类
1、在Swift动态库中同时使用Swift类和OC类,并在(OC/Swift)项目中正确调用
2、在OC动态库中同时使用Swift类和OC类,并在(OC/Swift)项目中正确调用
上述实验,在iOS7-iOS9设备上调试通过
下面开始分享实验的详细过程以及遇到的坑。
1、首先创建一个工作空间
2、创建一个Swift动态库
3、添加一个Swift测试文件。
这里需要注意public关键字的使用。动态库中的文件想要对外可见,OC和Swift的做法有区别。OC中把类的.h文件拖到public区域,就可以了。Swift没有.h文件,通过public关键字来对外开放。特别要注意的是,所有想要开放的方法和属性都需要设置这个关键字。
还需要注意的是,纯Swift类在OC类中无法直接使用。必须用关键字声明在OC中引用的别名才行。我这里让Swift类直接继承于NSObject类,避免了这个问题。
刚起个头又有事打扰了,未完待续。。。。
来源:oschina
链接:https://my.oschina.net/u/1418722/blog/603723