我正在开发 iOS B2B 应用程序,我有几个关于应用程序模块化的问题。
首先,我需要了解 bundle 和框架之间的主要区别。何时使用 bundle 以及何时使用框架。
另一个问题是。 bundle 是否可以在其中包含 .framework,反之亦然。
是否可以为 ios 应用程序创建一个插件并动态加载它们,如果是,那么它应该是什么? bundle 框架或库?
库是否可以包含资源文件?
是否可以创建资源包和动态库,然后在运行时动态加载它们。
最佳答案
Is it possible to create a plugins for ios app and load them dynamically, if yes then what it should be? bundle framework or library?
没有
Is it possible for library to contain a resource files ?
没有
Is it possible to create a resource bundle and dynamic library and then load them dynamically at runtime.
没有
bundle 是一种目录,即文件夹。框架是一个包。应用程序也是如此,插件也是如此。
静态库是一个单文件代码存档,您可以在构建时编译到您的应用中
- 动态库是可以在运行时加载的单个文件代码存档
- 框架是与其他东西 bundle 在一起的动态库
- 插件是与其他东西 bundle 在一起的动态库
Xcode 构建选项“Bundle”的意思是“将已编译的动态库放入包中” - 这就是您想要创建插件时要做的事情。
静态库是在 iOS 上模块化代码的唯一选择。
在桌面上..
通常,框架用于在多个应用程序之间共享代码和资源。您希望您的应用程序的行为就像代码实际上已编译到其中一样。您希望加载透明地进行,并且不想执行任何特殊操作来使用其中包含的方法、函数等。
插件(包含已编译代码和资源的 bundle )用于可选的动态加载代码,例如您可以选择加载或不加载的软件扩展。您需要仔细构建您的应用程序,以便它不依赖于插件,但如果您在运行时手动找到并加载它,它就会获得新的行为。
框架和插件非常相似,但框架具有严格的文件布局,以方便定位和加载代码和资源。使用插件,这些工作就是您的责任,因此您可以根据需要构建 bundle 内容。
因为在 OSX(但不是 iOS)上的 Cocoa 中加载代码非常容易框架可以包含插件,插件包含框架,而插件又包含更多框架等。
On iOS some people put Static Libraries in Bundles with resources and call them Frameworks 。这既没有真正框架的优点,也没有真正框架的所有缺点。
关于cocoa-touch - 了解 bundle 框架和库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13191045/