文档章节

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

 泊竹
发布于 2016/01/17 10:38
字数 510
阅读 452
收藏 0

完整的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、首先创建一个工作空间

2、创建一个Swift动态库

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

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

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


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

© 著作权归作者所有

粉丝 90
博文 67
码字总数 13285
作品 0
徐汇
私信 提问
Swift 4迁移总结:喜忧参半,新的起点

这次Swift 3 到 4 的迁移代码要改动的地方比较少,花了一个下午的时间就完成了迁移。Swift 把原来 4.0 的目标从 ABI 稳定改为了源码兼容,此次代码的兼容性做的确实很好,这个目标算是达到了...

没故事的卓同学
2017/09/30
0
0
swift遇见的坑 和 第三方库资源

纯 Swift2.0 工程 CocoaChina+ 从 0 到 1 遇到的坑和解决方案 前段时间博主从阿里巴巴跳槽加盟滴滴快的,乘着跳槽的时间差做了两件一直想做的事: 一件就是用Swift2.0写了一个CocoaChina的i...

Snaiper
2015/12/11
1K
0
.a .framework打包注意事项

静态库中使用了C++混编 我们都知道在OC项目中使用了C++文件来混编的话,就会报如图所示的错误。其最快捷的解决方法就是将项目中的一个文件的.m后缀改成.mm。 如果在制作静态库时也使用了C++...

_故事的小黄瓜_
2018/05/17
0
0
iOS中连接混编C++库的编译问题

问题 重新封装画板内核库后,所有的混编文件(.mm)都被打包到了库中,外面应用层代码全部都是文件(.m)。这时候编译工程会出现如下连接错误: Undefined symbols for architecture arm64: ...

Charly张
2016/05/31
140
0
Swift实际开发中遇到的小问题

从上周开始, 正式使用Swift语言进行实际项目的开发, 虽然之前Swift的语法已经了解过, 并且写过几个简单的小Demo, 但是在实际应用到了公司项目中还是遇到了一些小问题. 主要是Swift与OC语法对...

Sunxb
2016/12/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C 语言 二级指针的使用

#include <stdio.h>#include <stdlib.h>typedef struct node Node;struct node {int data;struct node* next;struct node* prev;};Node head;Node* insert(Node......

小张525
1分钟前
0
0
【大数据技术】——Hadoop(1)

什么是大数据 基本概念 《数据处理》 在互联网技术发展到现今阶段,大量日常、工作等事务产生的数据都已经信息化,人类产生的数据量相比以前有了爆炸式的增长,以前的传统的数据处理技术已经...

须臾之余
15分钟前
5
0
比特币从地址逆向计算私钥

区块链 区块链简介 说到比特币,就不得不提区块链。那什么是区块链呢? 区块链本质是一个数据集,只不过数据的组织采用了比较特殊的方式,就是把数据拆分为一块一块的小数据集。 为什么要进行...

trayvon
29分钟前
0
0
TypeScript……真香

写前端或者用 node 写命令行小工具一直采用的 es6 的语法,对于 TypeScript 则是秉持敬而远之的态度,毕竟团队中多推广一门语言所需要花费的精力都是让人望而却步的。所以对于 JavaScript 的...

郁也风
35分钟前
3
0
shell基本案例

1、自定义rm linux系统的rm命令太危险,一不小心就会删除掉系统文件。 写一个shell脚本来替换系统的rm命令,要求当删除一个文件或者目录时,都要做一个备份,然后再删除。下面分两种情况,做...

寰宇01
41分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部