cocoa-touch - 了解 bundle 框架和库

标签 cocoa-touch cocoa frameworks bundle libraries

我正在开发 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/

相关文章:

cocoa-touch - 我无法追踪这个泄漏。音频工具箱

objective-c - 设计和逻辑 - 保存重新排序的 UITable 行的最有效方法

xcode - 从 AppleScript 访问 Cocoa AppDelegate (NSApplicationDelegate) 中的属性

c# - 为什么 .NET Framework 会重载数组和 IEnumerable & params []?

ios - 架构 i386 的 undefined symbol : "SpeechKitApplicationKey"

objective-c - 如何在 tableView :viewForFooterInSection 中添加 UIButton 或 UISwitch

ios - iOS 版 Twitter 分享照片功能

java - Mac OS X 10.5 上的 SWT 和 Java WebStart

objective-c - NSTableView 和 NSMutableArray 之间的 Cocoa 绑定(bind)拒绝更新

ios - 如何使用 Swift 包管理器创建 Cocoa Touch 框架?