我知道在Objective C中,编译和运行时的含义,(方法交换属于运行时)但我想知道这两个库之间的区别是什么? .a和.dylib两者的作用是什么,除了一个是静态的,一个是动态的?我们什么情况下需要使用其中之一?
我知道在Objective C中,编译和运行时的含义,(方法交换属于运行时)但我想知道这两个库之间的区别是什么? .a和.dylib两者的作用是什么,除了一个是静态的,一个是动态的?我们什么情况下需要使用其中之一?
.a代表静态库
.dylib代表动态库
静态库(.a)
静态库(.a)是一组已编译的类和函数,可与iOS应用程序开发项目一起使用。它是一个已编译的二进制或fat文件,并可以在项目之间共享。
您可能希望出于不同的原因创建静态库。
例如:
您希望捆绑一些您和/或您团队中的同事经常使用的类,并轻松地共享这些类。
您希望能够将一些公共代码集中在一起,以便您可以轻松添加错误修复或更新。
您想与许多人共享库,但不允许他们查看您的代码。
动态库
扩展名为.dylib的文件是动态库:它是在运行时而不是在编译时加载的库。如果您熟悉Windows的DLL或DSO,则基本上是同一类型的东西,有一些变化。
dylib类似于Windows的*.dll文件。它们包含通用的、不可修改的代码,旨在被许多应用程序重复使用。