Swift开发——静态库制作和调用

Home / iOS MrLee 2016-3-12 5287

虽然在Swift中和C语言交互很方便,但是有时候我们想调用但是源码实现又不给别人使用。那么问题来了,怎么办呢?其实和Windows,Android一样的。Windows是制作.dll动态链接库,Android是.so静态。iOS是Unix,当然也属于自己的静态库啦。.a文件就是iOS的静态库。今天就给大家简单演示下iOS中怎么创建.a表态库和调用。
首先,我们创建一个静态库工程,如下图:

06EBD3AA-EAB3-4C06-A5D3-C0C95A4D8E2A


然后会自动生成一个.h和.m文件。也就是oc的。我们也可以添加其它的什么.h或.c文件一起编译。然后在.h中声明一个简单的函数,在.m中实现。.h代码如下:
#import 
@interface Transport : NSObject
+(void)printString;
@end

.m文件
#import "Transport.h"
@implementation Transport
+(void)printString {
    NSLog(@"Hello!");
}
@end

然后在Build Phases左边的+号点下面选项

8A7020AF-C504-49B1-9D8F-AA9078062D1E


然后把你要添加的头文件选上,如下图:

E030407E-8110-4B6C-8663-0EF38D783CF9


然后最后一步,如果你要在模拟器上测试,你要把设备改成模拟器,如果是真机的话需要调成真机。不然会报错的哦。生成的目录,

98A3735E-25E6-497E-97C0-5068B209910A


debug有2个,第一个是iphoneos,也就是真机嘛。第二个就是模拟器喽。
如果你只想一个库能在模拟器和真机上使用,可以把模拟器的静态库和真机的静态库合并,合并方法可以用lipo -create命令完成。这个很简单
lipo -create /模拟器库的路径/lib.a /真机库的路径/lib.a -output /合并后路径/lib.a

好了,我们在其它工程调用。直接把.h文件和.a文件直接拖放到目标工程,注意要勾选copy那项。然后目标工程的库里面自动会添加,如果没有添加你可以手动添加。

$TF16]IHB8K79%5$LPH(}73


在代码中调用之前还是在桥接,桥接自行搜索,非常简单。看这篇文章:Swift开发之数据库SQLite实例详解 在桥接头文件添加头文件.
#import "Transport.h"

添加完成之后就可以在Swift代码中调用了。方法如下:
Transport.printString()

 

本文链接:https://www.it72.com/7956.htm

推荐阅读
最新回复 (0)
返回