小木之林

记录技术上的点滴

在Swift中调用Objective-C的静态库

| Comments

在Swift中调用Objective-C的静态库和调用Objective-C的源码方法基本一致,大致分为两个步骤:

1.设定:XXX-Bridging-Header.h

将静态库的头文件import进去,如图:

2.调用静态库中的方法

具体调用就不需要import Objective-C的头文件了(XXX-Bridging-Header.h中的import是全局的),直接在Swift中使用Swift的语法调用Objective-C的静态库就可以了,如图:

另:和直接调用Objective-C源码不一样的地方是:

A.Objective-C的源码拖进XCode,XCode会自动产生一个Objective-C与Swift桥接的头文件XXX-Bridging-Header.h(一个工程一个,XXX便是你的工程名),如图:

B.而Objective-C的静态库需要你自己产生这个头文件,而且需要加到XCode的Build Settings中的Objective-C Bridging Header.如图:

坑:

1.目前遇到在静态库中使用Notifycation Center监听 ActiveTerminate都未起作用

总结:

看了官方的文档,双方混合调用都很方便,但是实际使用中肯定存在诸如上述的,个人建议大家慢慢将项目整体迁移至Swift,直接抛弃7.0一下的系统就好.

参考:

Swift Programming Language
Using Swift with Cocoa and Objective-C