BoxCat 1.0

BoxCat 1.0

测试已测试
语言语言 SwiftSwift
许可协议 MIT
发布最后发布2016年11月
SwiftSwift版本3.0
SPM支持SPM

devdrey维护。



BoxCat 1.0

  • devdrey

BoxCat

捆绑资源加载变得简单

BoxCat提供了一种简单的方法来从应用捆绑包中的任何位置加载资源。它能够从主应用捆绑包以及嵌套的资源捆绑包和包含的框架(例如,包含图片、xib文件和其他类型资源的Pod)加载资源。

从Pod和资源捆绑包加载资源

其主要目的是从可能包含在Pod中的资源捆绑包中加载资源。有关更多信息,请参阅Cocoapods捆绑资源。因此,为了统一的接口,它还将iOS SDK的加载资源解决方案替换掉,特别是如果您计划将来将一些资源移入Pods中。您甚至不需要更改加载资源的代码。

资源覆盖

使用BoxCat加载资源也将启用用主捆绑包中的资源覆盖Pod中包含的资源的能力。您只需在主应用捆绑包中包含一个名为Pod或资源捆绑包中相同名称的资源,并使用BoxCat的默认接口(如UIImage.named(_:))加载它即可。

如何使用

您可以使用Box cat的方式类似于iOS SDK内置的资源加载。但是,您不是使用资源类初始化器来加载资源,而是使用BoxCat提供的接口。

要加载图像资源,只需输入以下内容。

let boxCatImage = UIImage.named("my_image")

这将搜索整个主应用捆绑包以找到资源。因此,如果它在主应用捆绑包中,它将直接从该处加载。如果它位于主应用捆绑包内的捆绑包中,它也将找到并加载它。

BoxCat还提供了LookupFilter来提高在主捆绑包层次结构中深度包含的资源搜索性能。向BoxCat的接口提供具体的Bundle也是提高资源加载性能的一个选项。

您可以在全局或局部指定这些LookupFilter,仅影响单个资源加载调用。

// Set lookup filter globally
// These lookup filter will be used for every resource loading call
let lookupFilter = lookupFilter(frameworks: ["GlobalResources"], 
                                bundles: ["Images"])
BoxCat.lookupFilter = lookupFilter

//...

// Set specific lookup filter at the resource loading call
// Overriding the globally set lookup filter
UIImage.named("bg_launch", lookupFilter: LookupFilter(frameworks: ["GlobalResources"], bundles: ["BigImages"]))

要求

  • iOS 8+
  • Swift 3.0
  • Cocoapods

安装

BoxCat 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 即可:

pod "BoxCat", :git => 'https://github.com/dreyhomedev/BoxCat.git'

示例

包含的示例演示了如何从主包加载数据,一个包含图像资源的直接包,以及从包含资源包的包中加载数据。您将注意到每个情况的调用始终相同!

您还将注意到使用了 LookupFilter,这是 BoxCat 提供的。它们将搜索限制到应用程序包层次结构中的特定框架和(子)包。如果您包含的包中不包含资源(如 iOS 框架),这会提高资源加载的速度。

许可

BoxCat 在 MIT 许可证下提供。有关更多信息,请参阅 LICENSE 文件。