. framework 和 .a 找bundle 的不同
2019-01-07 本文已影响7人
CowboyBebop
- 1,静态库和动态库的区别?
静态库:链接时完整的拷贝到可执行文件,多次使用多次拷贝,造成冗余,使包变的更大。
动态库:链接时不复制,程序运行时由系统加在到内存中,供系统调用,系统加在一次,多次使用,共用节省内存。 - 2,iOS的静态库?
.a和.framework 样式 - 3,iOS的动态库?
.dylib和.framework - 4,为什么framework既是静态又是动态?
系统的framework是动态的,我们自己创建的是静态的。 - 5,.a 和 .framework 的区别是什么?
.a 是单纯的二进制文件,.framework是二进制问价+资源文件。
其中.a 不能直接使用,需要 .h文件配合,而.framework则可以直接使用。
.framework = .a + .h + sorrceFile(资源文件) - 6,项目中碰到的问题
通常我们会在组件内用[NSBundle bundleForClass:[self class]];
去找组件的bundle ,但是 podfile 中有 use_frameworks! 和没有 use_frameworks!,找到的bundle 是不一样的,在用 .framework 的能找到bundle,但是在组件用.a 的时候,bundle 还是mainbundle。