必需的框架与静态库

ma1*_*w28 14 frameworks static-libraries ios swift

构建现代框架每个应用程序都有自己的自定义框架副本.现在,Xcode的支持iOS的框架,它仍然是真实的框架静态库只是更方便?如果这是真的,那么为什么选择静态库模板呢?否则,一旦Swift支持静态库,我应该将所有必需的自定义框架转换为静态库吗?

dev*_* gr 12

框架与静态和动态共享库具有相同的用途,也就是说,它们提供了一个可由应用程序调用以执行特定任务的例程库.例如,Application Kit和Foundation框架为Cocoa类和方法提供了编程接口.与静态链接库和其他类型的动态共享库相比,框架具有以下优势:

  1. 框架组相关,但是分开,资源在一起.通过此分组,可以更轻松地安装,卸载和定位这些资源.

  2. 框架可以包括比库更多种资源类型.例如,框架可以包含任何相关的头文件和文档.

  3. 框架的多个版本可以包含在同一个包中.这使得可以向后兼容旧程序.

  4. 无论有多少进程正在使用这些资源,在任何给定时间,只有一个框架的只读资源副本驻留在内存中.这种资源共享减少了系统的内存占用,有助于提高性能.

摘录自此处.


Mav*_*ick 5

摘自这里

框架和库有何不同?

  • 控制反转是使框架与库不同的关键部分。当我们从库中调用一个方法时,我们处于控制之中,但在框架中,控制被反转,框架调用我们的代码。(例如,GUI 框架通过事件处理程序调用我们的代码)
  • 库本质上是一组我们可以调用(组织成类)的函数(定义明确的操作)。每个人都做一些工作,然后将控制权返回给客户端
  • 一个框架体现了一些抽象的设计,内置了更多的行为。为了使用它,我们需要通过子类化或插入我们的代码将我们的行为插入到框架中的不同位置。然后框架代码在这些点调用我们的代码。
  • 框架也可以被视为一个框架,其中应用程序通过填充框架来定义操作的主要内容。骨架仍然有代码来链接零件

  • 控制反转在 MacOS 和 iOS 应用程序中经常出现,objectivec 使委托和类扩展变得容易(哪些类可能分布在框架中),但控制反转不是静态库和框架之间的区别因素。 (2认同)