iOS Foundation:什么是NSBundle

存储在磁盘上捆绑目录中的代码和资源的表示。


苹果使用捆绑软件代表应用程序,框架,插件和许多其他特定类型的内容。 捆绑软件将其包含的资源组织到定义明​​确的子目录中,捆绑软件的结构因平台和捆绑软件的类型而异。 通过使用包对象,可以在不知道包结构的情况下访问包的资源。 捆绑对象提供了一个用于查找项目的单一界面,同时考虑了捆绑结构,用户首选项,可用的本地化以及其他相关因素。

任何可执行文件都可以使用包对象在应用程序的包内或其他位置的已知包中查找资源。 您不使用包对象在容器目录或文件系统其他部分中查找文件。


NSBundle包括一些常用功能:

  • class var main: Bundle
    返回包含当前可执行文件的捆绑对象。
  • class var allBundles: [Bundle]
    返回所有应用程序非框架捆绑包的数组。
  • init(for: AnyClass)
    返回与指定类关联的NSBundle对象。
  • init?(identifier: String)
    返回具有指定包标识符的NSBundle实例。
  • func loadNibNamed(String, owner: Any?, options: [AnyHashable : Any]? = nil)
    取消存档位于接收者包中的nib文件的内容。
  • func url(forResource: String?, withExtension: String?)
    返回由指定名称和文件扩展名标识的资源的文件URL。
  • var localizations: [String]
    捆绑软件中包含的所有本地化列表。

让我们实现一个功能强大的NSBundle!

捆绑包初始化。

在里面
  • 主捆绑
    常规项目中经常使用的组合以获得项目资源。
主捆绑
  • 所有捆绑
    如果您需要遍历分发包以查找某些内容或检查其是否存在。
所有捆绑
  • 班级捆绑
    如果您想确保获得特定班级的捆绑包。 使用Bundle类初始化程序。
班级捆绑
  • 按标识符捆绑
    您也可以使用其标识符分配捆绑包。
按标识符捆绑

好,很好! 现在,我们有了一个捆绑实例。 让我们从中检索资源。

  • 装入笔尖
    从Nib加载自定义视图类实例的简单方法
从捆绑包中装入笔尖
  • 获取资源的URL
    有时我们需要从捆绑软件中加载默认信息。 例如默认的JSON数据。
从Bundle加载JSON
  • 获取捆绑包本地化
    例如,您要检查某些包的本地化。
捆绑本地化

你完成了!

请记住,成功的秘诀是不断学习和与同事沟通,包括自我教育。

这是有关功能强大的NSBundle的小指南。 不要停止自我教育。

订阅我的帐户以获取有关新故事的通知。

如果您还有问题,请在评论中写。 我将在以后的文章中回答。