CSCConfigLoader提供了一个简单的接口,用于在iOS应用程序中加载静态配置数据(如服务器名称、API密钥等)。支持允许Pod提供其自己的默认配置并在主应用程序中覆盖它们。将配置数据从源代码中排除!
此Pod基本上是iOS plist文件加载功能的薄包装器,但它提供了一种更简单的接口、缓存和继承。
CSCConfigLoader可通过CocoaPods获取。要安装它,只需将以下行添加到Podfile中:
pod "CSCConfigLoader"
要运行示例项目,请克隆仓库,然后从Example目录运行pod install
。
示例项目仅加载主配置,并使用NSLog打印出其中的测试值。目前没有UI。在应用程序代理中只有(稍微)有趣的自定义代码。
通过在XCode中右键单击您想要的目录 -> 新建文件 -> 资源 -> 属性列表创建配置文件。请确保给文件命名为"config"。您可以将任何配置值添加到其中。
要访问配置值,首先需要导入库
#import "CSCConfigLoader.h"
实例在内部库中缓存,以实现快速访问,因此它们只有第一次访问时才会产生加载时间——请放心重复使用这些方法来访问键。因此,创建实例的唯一方法是使用CSCConfigLoader
的类方法。有三个这样的方法
+ (instancetype) mainConfig
返回表示主bundle配置的对象。
+ (instancetype) configFromBundle:(NSBundle *)bundle
返回表示指定bundle配置的对象。这对于Pod开发者非常有用,他们可以在Pod的资源包中拥有自己的私有配置。
+ (instancetype) mainConfigWithFallbackFrom:(NSBundle *)bundle
返回代表主包配置的对象,但如果在主包中找不到键,它还会从提供的包中搜索配置。这对希望创建默认值的包开发商最有用,但希望主应用程序(包的用户)能够覆盖这些值。
您很可能希望按名称加载您的包资源包。这是指定在您 podspec 的 resource_bundles
属性的键。然后您可以按此方式加载:
[NSBundle bundleWithPath:[[NSBundle mainBundle]
pathForResource:@"YOUR_BUNDLE_NAME"
ofType:@"bundle"]];
根据您的包配置,还可能使用 NSBundle
的 bundleForClass:
方法,并传递您的包类之一。但这超出了本说明文档的范围。
所有键都可通过下标访问,就像访问 NSDictionary 中的键的语法一样。假设有一个名为 conf
的实例,您可以通过以下方式获取名为 YOUR_KEY_HERE
的键的值:conf[@"YOUR_KEY_HERE"]
。
在实践中,您可能更倾向于将其作为一行使用,如 [CSCConfigLoader mainConfig][@"YOUR_KEY_HERE"]
。不言而喻,应该用需要访问的键的名称替换 YOUR_KEY_HERE
。
这就是全部了!
本包由 Cast Social Company 创建,专门用于在旗舰产品 Cast 中使用。希望其他人也能用到它!
CSCConfigLoader 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。