知识点:OC中.a和framework的区别(转)

OC中的库概念

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

静态库 && 动态库 区别

静态库:链接时,完整的拷贝至可执行文件,多次使用就会多次拷贝造成冗余拷贝,使包体积变大
动态库:链接时不复制,程序运行时动态加载到内存,供程序调用,系统只加载一次,节省内存

iOS里静态库形式

.a和framework

iOS里动态库形式

.dylib和framework

.framework为什么既是动态库又是静态库

这个分情况,如果是系统的.framework就是动态库,我们自己创建的就是静态库

.a和。framework的区别

.a就是一个纯二进制文件
.framework除了二进制文件之外还有资源文件
.a不能直接使用,需要搭配.h文件
.framework可以直接使用

为什么要使用静态库

代码共享,合理避免重复代码(组件化概念)
代码私有化,提供给别人使用,但不想让别人看到你代码的实现,只暴露接口使用方法(一般多为三方SDK开发)
还有就是组件化的时候,对业务库打包成.a文件会提高编译效率,但会使包体积变大(空间换时间)

作者:杯中怎可无酒
链接:https://www.jianshu.com/p/b58c9ab12463

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容