我想问一个关于iPhone应用程序上的目标C的问题。我在苹果开发者网站上阅读了一些示例程序,发现几乎所有的应用程序都包含一个名为“ NSBundle”和“ mainBundle”的单词,我真的不理解这个单词的含义。有人可以告诉我吗?非常感谢。
捆绑软件是用于在Mac OS X上打包软件的结构。应用程序,框架和插件都是不同种类的捆绑软件。如果您愿意,捆绑软件可能包含可执行代码,资源,头文件和其他内容(包括其他捆绑软件)。
捆绑包被实现为具有定义结构的目录树。应用程序,框架和插件在树的结构上各有不同。但是,对于Finder,捆绑包看起来像单个文件。
主捆绑包只是正在运行的应用程序的捆绑包。因此,例如,Apple邮件程序的主捆绑包是/Applications/Mail.app。
假设我们的代码是:
NSString *myFile=[[NSBundle mainBundle]pathForResource:@"subjects" ofType:@"plist"];
我们在Xcode中创建subject.plist(文件>新建>新文件> iOS>资源>属性列表),并将其复制到我们的支持文件夹中。
这实际上是一种当我们不知道它们在哪里时,获取安装在iOS设备上的文件的方法。这是获取subject.plist
文件的一种方法,该文件是我们应用程序内部捆绑或内部包的一部分。我们无法直接访问iOS设备上的文件系统,因此这是我们拥有自己资产的方式。
关于捆绑软件,有很好的苹果文档。 Bundle Programming Guide