【问题标题】:What is NSBundle and mainBundle in Objective-C?Objective-C 中的 NSBundle 和 mainBundle 是什么?
【发布时间】:2011-03-23 02:23:21
【问题描述】:

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

【问题讨论】:

标签: objective-c cocoa nsbundle


【解决方案1】:

有一个很好的关于捆绑包的苹果文档。 Bundle Programming Guide

【讨论】:

    【解决方案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 设备上的文件系统,因此这是我们获取自己资产的方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-01
        • 1970-01-01
        相关资源
        最近更新 更多