object-c项目使用swift库
2020-12-25 本文已影响0人
简单点的笨演员
swift在iOS开发中越来越流行,现在有些ios库已经改用swift不再提供object-c版本了。如果我们的项目是object-c的,又想用swift的库,可以添加一个小小的swift文件作为中间件(wrapper)。这个中间件调用swift库实现我们想要的功能,并导出object-c接口,我们的项目直接调用导出的object-c接口。注意,项目名不能有中文,否则会出错。
一、添加想要使用swift版本的库;
二、在项目中添加一个swift文件,名字随意,后面也可以修改,如Test.swift。如果是第一次在工程中创建 Swift 文件,会弹出下面的提示,选择第一个就行了。

三、在Test.swift中添加功能代码,@objc表示导出到object-c。
@objc class SomeClass:NSObject {
@objc func someFunction(_:Any) -> Bool {
// do something here
}
}
四、在 Object-C 在需要调用 Swift 代码的类中文件中导入 Swift 头文件,这个是固定写法(规则是:工程名-Swift.h,文件在build的时候自动生成,工程名如果有中文可能会出错),然后就可以调用我们刚才的 Swift 代码了:
#import <你的工程名-Swift.h> // 工程名不能有中文
.....
SomeClass *test= [[SomeClass alloc] init];
[test someFunction:self];