了解bundle框架和库

时间:2012-11-02 07:25:36

标签: cocoa-touch cocoa frameworks bundle libraries

我正在开发ios B2B应用程序,我有几个关于应用程序模块化的问题。

首先,我需要了解bundle和frameworks之间的主要区别。何时使用bundle和框架。

另一个问题是。 bundle是否可能在其中包含.framework,反之亦然。

是否可以为ios应用创建插件并动态加载它们,如果是,那么应该是什么?捆绑框架或库?

库是否可以包含资源文件?

是否可以创建资源包和动态库,然后在运行时动态加载它们。

1 个答案:

答案 0 :(得分:3)

  

是否可以为ios应用创建插件并加载它们   动态,如果是,那应该是什么?捆绑框架或   库中?

没有

  

库是否可以包含资源文件?

没有

  

是否可以创建资源包和动态库   然后在运行时动态加载它们。

没有

  • 捆绑是一种目录,一个文件夹。框架是一个捆绑。应用程序也是如此,插件也是如此。

  • 静态库是您可以在构建时编译到应用中的单个文件代码存档

  • 动态库是您可以在运行时加载的单个文件代码存档
  • 框架是Bundle中的动态库及其他内容
  • 插件是Bundle中的动态库,包含其他内容

Xcode构建选项' Bundle'意味着将已编译的动态库放在一个捆绑包中。 - 当你想创建一个插件时,这就是你要做的。

静态库是在iOS上模块化代码的唯一选择。

在桌面上..

通常,框架用于在多个应用之间共享代码和资源。您希望您的应用程序的行为就像代码实际编译到其中一样。您希望加载是透明的,并且您不想做任何特殊的事情来使用其中包含的方法,功能等。

插件(包含已编译代码和资源的Bundle)用于可选的动态加载代码,例如,您可以选择加载或不加载的软件扩展。您需要仔细构建您的应用程序,以便它不依赖于插件,但如果您在运行时手动定位并加载它,则会获得新的行为。

框架和插件非常相似,但框架具有严格的文件布局,以便于查找和加载代码和资源。使用插件,这些工作是您的责任,因此您可以根据需要构建Bundle内容。

因为在OSX(但不是iOS)上的Cocoa中加载代码非常简单,所以Frameworks可以包含包含框架的插件,其中包含更多的框架等。

On iOS some people put Static Libraries in Bundles with resources and call them Frameworks。这没有真正框架的好处和所有缺点。