29

关于iOS应用上的Objective-C,我在Apple开发者网站上阅读了一些示例程序,发现几乎所有的应用程序都包含一个叫做' NSBundle '' mainBundle '的词,我真的不明白这个的意思单词。那是什么?

4

3 回答 3

31

包是用于在 Mac OS X 上打包软件的结构。应用程序、框架和插件都是不同种类的包。如果您愿意,捆绑包可能包含可执行代码、资源、头文件和其他东西(包括其他捆绑包)。

捆绑包被实现为具有定义结构的目录树。应用程序、框架和插件在树的结构上都有自己的变化。但是,对于 Finder,捆绑包看起来像单个文件。

主包只是正在运行的应用程序的包。因此,例如,Apple 邮件程序的主要捆绑包是 /Applications/Mail.app。

于 2010-07-30T07:58:50.487 回答
5

假设我们的代码是:

NSString *myFile=[[NSBundle mainBundle]pathForResource:@"subjects" ofType:@"plist"];

我们在 Xcode 中创建 subject.plist(文件> 新建> 新文件> iOS> 资源> 属性列表)并将其复制到我们的支持文件夹中。

当我们不知道它们在哪里时,这确实是一种获取安装在 iOS 设备上的文件的方法。这是获取我们subject.plist文件的一种方式,该文件是我们应用程序内部 Bundle 或内部包的一部分。我们无法直接访问 iOS 设备上的文件系统,因此这是我们获取自己资产的方式。

于 2013-06-30T07:58:31.003 回答
1

有一个很好的关于捆绑包的苹果文档。捆绑编程指南

于 2010-07-30T07:29:42.860 回答