Objective-c库用于加载带有本地定义默认值的远程JSON/XML配置文件。
最佳且最简单的方式是使用CocoaPods。
pod 'RemoteConfig'
创建一个GVJSONRemoteConfig
或GVXMLRemoteConfig
的子类,并重写以下方法:
- (NSURL *)remoteFileLocation;
(必需)- (void)setupMapping;
(必需)- (NSTimeInterval)redownloadRate;
(可选,默认情况下,远程文件每24小时重新下载一次)建议添加配置值的自定义属性。不过,键值编码同样可行。
查看包含示例应用:Config.m
和ViewController.m
。
要运行示例应用,通过CocoaPods安装其依赖:pod install
。
@interface Config : GVJSONRemoteConfig
@property (strong, nonatomic) NSNumber *exampleIntegerValue;
@property (strong, nonatomic) NSString *exampleStringValue;
@property (strong, nonatomic) NSString *nonExistingStringValue;
+ (Config *)sharedInstance;
@end
@implementation Config
+ (Config *)sharedInstance {
static dispatch_once_t pred;
static Config *sharedInstance = nil;
dispatch_once(&pred, ^{ sharedInstance = [[self alloc] init]; });
return sharedInstance;
}
- (NSURL *)remoteFileLocation {
return [NSURL URLWithString:@"https://raw.github.com/gangverk/RemoteConfig/master/Example/example.json"];
}
- (void)setupMapping {
[self mapRemoteKeyPath:@"remote_integer_value" toLocalAttribute:@"exampleIntegerValue" defaultValue:[NSNumber numberWithInteger:1]];
[self mapRemoteKeyPath:@"remote_string_value" toLocalAttribute:@"exampleStringValue" defaultValue:@"Default local value"];
[self mapRemoteKeyPath:@"nonexisting_string_value" toLocalAttribute:@"nonExistingStringValue" defaultValue:@"Default local value for nonexisting value on server"];
}
@end
有错误吗?请在GitHub上创建一个问题!
待办事项列表中以下事项:
您是否在iOS或Mac OS X应用中使用RemoteConfig?请发送包含更新README.md文件的拉取请求以包括在内。
RemoteConfig在MIT许可下可用。有关更多信息,请参阅LICENSE文件。