我正在开发ios B2B应用程序,我有几个关于应用程序模块化的问题。
首先,我需要了解bundle和frameworks之间的主要区别。何时使用bundle和框架。
另一个问题是。 bundle是否可能在其中包含.framework,反之亦然。
是否可以为ios应用创建插件并动态加载它们,如果是,那么应该是什么?捆绑框架或库?
库是否可以包含资源文件?
是否可以创建资源包和动态库,然后在运行时动态加载它们。
答案 0 :(得分:3)
是否可以为ios应用创建插件并加载它们 动态,如果是,那应该是什么?捆绑框架或 库中?
没有
库是否可以包含资源文件?
没有
是否可以创建资源包和动态库 然后在运行时动态加载它们。
没有
捆绑是一种目录,一个文件夹。框架是一个捆绑。应用程序也是如此,插件也是如此。
静态库是您可以在构建时编译到应用中的单个文件代码存档
Xcode构建选项' Bundle'意味着将已编译的动态库放在一个捆绑包中。 - 当你想创建一个插件时,这就是你要做的。
静态库是在iOS上模块化代码的唯一选择。
在桌面上..
通常,框架用于在多个应用之间共享代码和资源。您希望您的应用程序的行为就像代码实际编译到其中一样。您希望加载是透明的,并且您不想做任何特殊的事情来使用其中包含的方法,功能等。
插件(包含已编译代码和资源的Bundle)用于可选的动态加载代码,例如,您可以选择加载或不加载的软件扩展。您需要仔细构建您的应用程序,以便它不依赖于插件,但如果您在运行时手动定位并加载它,则会获得新的行为。
框架和插件非常相似,但框架具有严格的文件布局,以便于查找和加载代码和资源。使用插件,这些工作是您的责任,因此您可以根据需要构建Bundle内容。
因为在OSX(但不是iOS)上的Cocoa中加载代码非常简单,所以Frameworks可以包含包含框架的插件,其中包含更多的框架等。
On iOS some people put Static Libraries in Bundles with resources and call them Frameworks。这没有真正框架的好处和所有缺点。