【问题标题】:What is NSBundle and mainBundle in Objective-C?Objective-C 中的 NSBundle 和 mainBundle 是什么?
【发布时间】:2011-03-23 02:23:21
【问题描述】:
【问题讨论】:
标签:
objective-c
cocoa
nsbundle
【解决方案2】:
捆绑包是用于在 Mac OS X 上打包软件的结构。应用程序、框架和插件都是不同种类的捆绑包。如果您愿意,捆绑包可能包含可执行代码、资源、头文件和其他内容(包括其他捆绑包)。
Bundles 被实现为具有定义结构的目录树。应用程序、框架和插件在树的结构上都有自己的变化。但是,对于 Finder,捆绑包看起来像单个文件。
主包只是正在运行的应用程序的包。因此,例如,Apple 邮件程序的主要捆绑包是 /Applications/Mail.app。
【解决方案3】:
假设我们的代码是:
NSString *myFile=[[NSBundle mainBundle]pathForResource:@"subjects" ofType:@"plist"];
我们在 Xcode 中创建 subject.plist (File> new> new file> iOS> resource> property list) 并将其复制到我们的支持文件夹中。
当我们不知道它们在哪里时,这确实是一种获取安装在 iOS 设备上的文件的方法。这是获取我们的subject.plist 文件的一种方式,该文件是我们应用程序内部Bundle 或内部包的一部分。我们无法直接访问 iOS 设备上的文件系统,因此这是我们获取自己资产的方式。