iOS静态库和Framework的区别

库是程序共享代码的方式,一般分为静态库和动态库

静态库和动态库

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

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

iOS中静态库形式有 .a和framework

iOS中动态库有dylib和.framework

系统的framework是动态库,我们自己建立的.framework 是静态库

.a和framework的区别

.a是一个纯二进制文件,.framework中除了二进制文件还有其他

.a不能直接使用,至少需要.h文件配合,.framework文件可以直接使用

.a+.h+sourcefile = framework

为什么要使用代码静态库

共享代码,便于合理使用

iOS程序的模块化,可以将固定的业务模式化静态库

和别人共享你的代码库,但又不想让别人看到你的实现

开发第三方SDK

制作静态库时的注意点

无论是.a静态库还是.framework都需要静态库的二进制文件+.h+其他资源文件,不同的是.a是二进制文件,需要配合其他.h和其他资源文件使用,而framework本身就包含了.h和其他文件,可以直接使用

图片资源的处理,一般是把图片放在.bundle,bundle文件的名字和framework的名字是一样的

cateory是我们实际开发中常用到的,把category打包进静态库时没有问题,调用category中的方法会出现selector not recognizer的问题,在使用静态库中配置other linker flags -Objc

如果一个静态库很复杂需要暴露的.h很多的话,可以在静态库的内部创建一个.h文件,然后把所有的.h文件放在这个新建的.h文件中即可,而其他的就不需要再暴露了

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值