framework 是什么
framework 是对静态库和动态库的一个封装(包括了静态库和动态库)
-
加载方式
静态库编译加载到可执行文件程序启动时直接加载,动态库是在启动时动态链接.
分发文件 内存占用
静态库分发文件大,动态库分发文件小。
静态库以类为单位编译到可执行文件中(根据使用情况加载)
动态库完整拷贝到 framework 沙盒的 framework目录中.
最终ipa的大小根据不同的情况去检测.
3,启动速度
静态库冷启动速度快,动态库冷启动速度慢(启动时动态链接)优化方式冷加载。
4,extention 扩展程序使用动态库实现共享节约内存。
5,动态库可以解决符号冲突问题,以及分类加载问题
所以根据具体情况,选择不同的策略。
6,IOS9之前对ipa 可执行文件TEXT段有60M的限制,使用动态库可以解决这个问题。
7,静态库中的同名分类会覆盖动态库中的同名分类,主工程的同名动态库会覆盖动态库中的动态库.
https://www.youtube.com/watch?v=IybpQbeS6K8 这个视频可以看看。
分类加载顺序 1,动态库中的分类。2,主工程的分类 3,静态库中的分类