3

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

首先,我需要了解捆绑包和框架之间的主要区别。何时使用捆绑包以及何时使用框架。

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

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

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

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

4

1 回答 1

3

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

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

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

  • Bundle是 Directory 的一种,一个文件夹。框架是一个捆绑包。应用程序也是如此,插件也是如此。

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

  • 动态库是可以在运行时加载的单个文件代码存档
  • 框架是与其他东西捆绑在一起的动态库
  • 插件是与其他东西捆绑在一起的动态库

Xcode 构建选项“Bundle”的意思是“将编译后的动态库放在一个 Bundle 中”——这就是你想要创建插件时所做的事情。

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

桌面上..

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

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

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

因为在 OSX(但不是 iOS)上的 Cocoa 中加载代码非常容易,框架可以包含插件,这些插件包含包含更多框架的框架等。

在 iOS 上,有些人将静态库与资源一起放在 Bundles 中,并称它们为 Frameworks。这没有真正框架的所有优点和所有缺点。

于 2012-11-02T11:46:25.483 回答