Building Modern Frameworks说every app has its own copy of a custom framework。既然Xcode支持iOS框架,那么frameworks are static libraries仍然是more convenient吗?如果这是真的,那么为什么选择静态库模板呢?否则,我应该在Swift supports static libraries之后将所有必需的自定义框架转换为静态库吗?
答案 0 :(得分:11)
框架与静态和动态共享具有相同的用途 库,也就是说,它们提供了可以的例程库 由应用程序调用以执行特定任务。例如, Application Kit和Foundation框架提供了程序化 Cocoa类和方法的接口。框架提供 以下优于静态链接库和其他类型的 动态共享库:
框架组相关但独立的资源在一起。此分组使安装,卸载和定位更容易 资源。
框架可以包含比库更多种资源类型。例如,框架可以包括任何相关的标题 文件和文件。
框架的多个版本可以包含在同一个包中。这使得可以向后兼容旧版本 程序
- 醇>
在任何给定时间,只有一个框架的只读资源副本驻留在内存中,无论有多少 进程正在使用这些资源。这种资源共享减少了 系统的内存占用有助于提高性能。
摘录自here。
答案 1 :(得分:4)
摘录自here。
框架和图书馆如何彼此不同?
- 控制反转是使框架与库不同的关键部分。当我们从库中调用一个方法时,我们处于控制之中,但是在框架中控件被反转,框架会调用我们的代码。 (例如,GUI框架通过事件处理程序调用我们的代码)
- 库本质上是一组我们可以调用的函数(定义良好的操作)(组织成类)。每个都做了一些工作,然后将控件返回给客户端
- 框架体现了一些内置更多行为的抽象设计。为了使用它,我们需要通过子类化或插入代码将我们的行为插入到框架中的不同位置。然后框架代码在这些点调用我们的代码。
- 框架也可以被视为一个框架,应用程序通过填充框架来定义操作的内容。骨架仍然有代码链接部件
答案 2 :(得分:3)
动态框架的使用专门针对来自iOS 8及更高版本的swift,即(您无法使用iOS 7和动态框架提交构建)
如果您想要支持iOS 7,之后可以使用静态库和objc
动态框架和静态库是不同的东西,框架是一个包,你有一个目录,可以包括资源,视图,类,还有库
静态库只是可执行代码
此外,您在自己的代码中使用静态库中的代码,在框架的情况下,他使用代码并处理它运行的方式以及做什么
此链接可以帮助您 http://www.knowstack.com/framework-vs-library-cocoa-ios/