福建永安建设局网站,郑州企业网站设计公司哪家好,企业网站模块介绍,凡科建站官网免费注册一、共同点#xff1a;两者其实都是静态库。二、区别1.承载的内容范畴#xff1a;(1)StaticLibrary的产出物只是一个.a文件#xff0c;为二进制执行文件。分享给别人的时候#xff0c;头文件、静态资源文件需要另外提供。(2)Framework为一站式分享方案#xff0c;其实是一…一、共同点两者其实都是静态库。二、区别1.承载的内容范畴(1)StaticLibrary的产出物只是一个.a文件为二进制执行文件。分享给别人的时候头文件、静态资源文件需要另外提供。(2)Framework为一站式分享方案其实是一个文件夹其中包含代码签名、头文件、二进制执行文件、静态资源文件等。2.头文件搜索路径的区别StaticLibrary需要设置头文件搜索路径Framework不需要。3.当存在对外部代码库依赖的时候(1)StaticLibrary能够只引用外部库的头文件调用外部库的公开方法而不引入其库实现实现与引用库的分离部署。(2)Framework要引用一个外部库就必须要将此外部库的实现放入Framework内编译才可以。如果要想达到StaticLibrary的效果可以使用运行时方式调用。4.运行环境(对3的理解升级)(1)StaticLibrary共享其运行环境假如其运行环境中包换库中同一个类会发生代码冲突必须剥离其中一方的此类然后共享此类。(2)Framework与其运行环境隔离假如其运行环境中包换库中同一个类不会发生冲突同名的两个类会在各自的环境中独立运行互不干扰哪怕是单例类。5.综合3和4现总结在多方合作开发的时候负责库实现的人员如何选择使用Framework还是StaticLibrary(1)假如不想在同一个App中包含多份三方库(减小包大小)可以使用StaticLibrary库本身和App共享第三方库。但是产出物的结构可能会比较乱。(2)假如不想考虑和App的代码冲突问题库本身独立使用需要的库想提供比较好的库结构可以使用Framework。但是假如库本身和App都使用了同一个三方库会存在两份三方库会增加包大小。