Cocoa touch 了解捆绑包框架和库

Cocoa touch 了解捆绑包框架和库,cocoa-touch,cocoa,frameworks,bundle,libraries,Cocoa Touch,Cocoa,Frameworks,Bundle,Libraries,我正在开发ios B2B应用程序,我有几个关于应用程序模块化的问题 首先,我需要理解bundle和框架之间的主要区别。何时使用捆绑包以及何时使用框架 另一个问题是。bundle是否可能包含.framework,反之亦然 可以为ios应用程序创建插件并动态加载它们吗?如果可以,那么应该是什么?捆绑框架还是库 库是否可以包含资源文件 可以创建资源包和动态库,然后在运行时动态加载它们吗 是否可以为ios应用程序创建插件并加载它们 动态地,如果是,那么应该是什么?捆绑框架或 图书馆 没有 库是否可以包含

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

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

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

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

库是否可以包含资源文件

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

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

没有

库是否可以包含资源文件

没有

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

没有

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

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

  • 动态库是可以在运行时加载的单个文件代码存档
  • 框架是与其他东西捆绑在一起的动态库
  • 插件是与其他东西捆绑在一起的动态库
Xcode构建选项“Bundle”意味着“将已编译的动态库放在Bundle中”——这是您在创建插件时要做的事情

静态库是在iOS上编译代码的唯一选项

在桌面上

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

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

框架和插件非常相似,但框架有严格的文件布局,以便于定位和加载代码和资源。有了插件,这些工作是你的责任,因此你可以根据自己的需要构造包内容

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


。这既没有真正框架的优点,也没有真正框架的缺点。

iOS现在可以有动态库吗?