iOS开发—— 动态库和静态库

动态库:
1、以.tbd(以前是.dylib)或者.framework为后缀的文件,系统里面的.framework库都是动态库,入UIKit.framework,Foundation.framework等等;
2、链接时不进行复制,由系统动态加载到内存,只加载一次,可以多个程序使用,节省内存,减少app体积,原理上可以用做热更新,只是苹果不允许热更新,所以使用动态库上不了架(iOS8之前时不能使用动态库的,iOS8之后出现了App Extension,以及现在Swift需要,可以使用.framework的动态库,实现在app和Extension两者共用一个库,但是这种动态库严格意义上不能算是动态库,只能算是伪动态库,这种动态库不是放在系统上,而是放在工程的mainbundle里面,每次更新库都要重新把新版的库放在工程里面重新打包);
3、加载过程比静态库复杂,花费时间长。

静态库:
1、以.a或者.framework为后缀的文件;
2、链接时会被复制到可执行文件中,每个程序使用都会复制一次;
3、会比动态库的体积大。

如何设置:
在库工程的Build Setting ->Mach-O Type,选择Static Library就是静态库,选择Dynamic Library就是动态库(伪动态库)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值