Swift2.0与OC混编实验--动态库(一)

完整的Demo下载

做了以下几个实验


验证SwiftOC的项目可以使用任意语言开发的动态库

1、创建了一个Swift语言的动态库

2、创建了一个OC语言的动态库

3、创建了一个SwiftApp项目,在项目中同时使用SwiftOC的动态库

4、创建了一个OCApp项目,在项目中同时使用SwiftOC的动态库


验证同一项目中(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、首先创建一个工作空间

Swift2.0与OC混编实验--动态库(一)_第1张图片

Swift2.0与OC混编实验--动态库(一)_第2张图片

2、创建一个Swift动态库

Swift2.0与OC混编实验--动态库(一)_第3张图片

Swift2.0与OC混编实验--动态库(一)_第4张图片

Swift2.0与OC混编实验--动态库(一)_第5张图片

Swift2.0与OC混编实验--动态库(一)_第6张图片

Swift2.0与OC混编实验--动态库(一)_第7张图片

3、添加一个Swift测试文件。

Swift2.0与OC混编实验--动态库(一)_第8张图片

      这里需要注意public关键字的使用。动态库中的文件想要对外可见,OC和Swift的做法有区别。OC中把类的.h文件拖到public区域,就可以了。Swift没有.h文件,通过public关键字来对外开放。特别要注意的是,所有想要开放的方法和属性都需要设置这个关键字。

      还需要注意的是,纯Swift类在OC类中无法直接使用。必须用关键字声明在OC中引用的别名才行。我这里让Swift类直接继承于NSObject类,避免了这个问题。


刚起个头又有事打扰了,未完待续。。。。

你可能感兴趣的:(framework,swift,迁移,动态库,混编)