我正在构建一个可供多个客户端重复使用的应用程序。应用程序中的一个区别是 EventID。我不想在每次创建这些应用程序中的一个新应用程序时更改代码,而是使用某种配置文件并在那里设置 ID 并保持访问该文件的代码相同。最好的地方是什么(plist)?如果可能,我如何在代码中和全局访问此 key ?
Best Answer-推荐答案 strong>
如果您将设置放在应用的 Info.plist 文件中,您可以按如下方式访问它:
NSString *eventID = [[[NSBundle mainBundle] infoDictionary] objectForKey"EventID"];
您还可以将值存储在单独的属性列表文件(例如 Settings.plist)中,将其包含在应用的“复制捆绑资源”构建阶段,然后像这样访问它:
NSString *settingsPath = [[NSBundle mainBundle] pathForResource"Settings" ofType"plist"];
NSDictionary *settings = [NSDictionary dictionaryWithContentsOfFile:settingsPath];
NSString *eventID = [settings objectForKey"EventID"];
一种更容易阅读设置的方法是通过类提供访问权限:
@interface CNSSettings : NSObject
+ (NSString *)eventID;
@end
@implementation CNSSettings
+ (NSDictionary *)settingsDictionary
{
static NSDictionary *_settingsDictionary = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSString *settingsPath = [[NSBundle mainBundle] pathForResource"Settings" ofType"plist"];
_settingsDictionary = [NSDictionary dictionaryWithContentsOfFile:settingsPath];
});
return _settingsDictionary;
}
+ (NSString *)eventID
{
return [[self settingsDictionary] objectForKey"EventID"];
}
@end
使用上面的类,您只需要执行以下操作:
NSString *eventID = [CNSSettings eventID];
关于ios - iOS 应用程序中的动态设置放置,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/19698895/
|