iOS-怎样建立一个静态库

2016-12-11  本文已影响441人  Summer琼

首先介绍一下什么是静态库?

程序编译一般需经预处理、编译、汇编和链接几个步骤。在应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中。这种库称为静态库

简单来说:"静态库就是程序代码的集合,是共享代码的一种方式"

静态库存在的形式


分为 .a 和 .framework 

动态库和静态库使用上的区别


苹果系统内部都是使用的动态库,因为性能比较高;

静态库和动态库在使用上的区别

静态库:链接时,静态库中使用的文件会被完整地复制到可执行文件中,被多次使用就有多份冗余拷贝

动态库:不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存

需要注意的是:

项目中如果使用了自制的动态库,不能被上传到AppStore 

原因:安全问题(能替换系统内部方法的话,能窃取用户信息);

创建静态库


说了这么多开始上图!

创建仓库,在文件中写入方法!

在运行一下~

创建一个新的Demo用来测试

导入头文件,

就可以直接用了!怎么样 .a 静态库很简单吧!

带资源的静态库


首先库的文件中添加使用图片的方法!


拖一个资源时别忘了勾选!!

添加路径..资源

需要 运行一下,去资源库文件夹里查看,资源是否存在

 拖到Demo项目中去, 就可以调用方法使用资源了!

我们开发中一搬把文件放在bundle里面

在样开发测试库太麻烦,所以,我们采用第二套方案

把图片资源直接拖到Bundle里面,

更改一下方法中使用读取图片的方法!改成从Bundle中读取就可以了!

运行一下!把库文件拖入Demo中!

别怪我啰嗦,记得Demo中我们上一次使用的没带资源的库,要删除掉!在项目中删除,还要在跳进去,在文件夹中删除!不然拖不进去!

这样我们的 .a 的静态库就做好了!!!很简单吧!

.Framework和.a创建方法差不多!几个注意的地方我这里简单说一下!!

首先创建成功的.framwork 是动态的需要修改一下

注意 创建静态库别忘了需改-ObjC 不然会崩掉!

这是本人自己的理解!如有不对的地方,还望海涵!!!!!!

上一篇 下一篇

猜你喜欢

热点阅读