autoreleas实现原理
静态库和动态库的区别
1、 形式上
静态库是.a 和 .framework。 动态库是.dylib和 .framework ,xcode8 为.tbd ,本质是.dylib
2、使用上:
静态库,链接时,会被完整的复制到可执行文件中,如果多个APP 使用了同一个静态库,就会有多次拷贝,会占用更多的内存。
动态库,链接时不复制,程序运行时由系统动态的加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。
看一下 framework 和 Static Library 的区别
- framework 既可以制作静态库,也可以制作动态库。
- Static Library 制作静态库
- framework 实际上为一站式分享方案,其实是一个文件夹,其中包含代码签名,头文件,二进制执行文件,静态资源文件等,
- static Library 的产出物只是一个.a 文件,为二进制执行文件。分享给别人的时候,头文件,静态文件需要另外提供
- staticLibrary 需要设置头文件搜索路径,framework 不需要