• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - iOS 应用程序中的动态设置放置

[复制链接]
菜鸟教程小白 发表于 2022-12-13 05:19:50 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在构建一个可供多个客户端重复使用的应用程序。应用程序中的一个区别是 EventID。我不想在每次创建这些应用程序中的一个新应用程序时更改代码,而是使用某种配置文件并在那里设置 ID 并保持访问该文件的代码相同。最好的地方是什么(plist)?如果可能,我如何在代码中和全局访问此 key ?



Best Answer-推荐答案


如果您将设置放在应用的 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap