Settings.plist iOS

Posted

技术标签:

【中文标题】Settings.plist iOS【英文标题】: 【发布时间】:2013-10-07 17:15:24 【问题描述】:

我的 ios 应用程序中有一个 Settings.plist 文件。我使用下面的代码访问它:

    NSError *error;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Settings.plist"];

    NSFileManager *fileManager = [NSFileManager defaultManager];


    if (![fileManager fileExistsAtPath: path])
    
        NSString *bundle = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"plist"];

        [fileManager copyItemAtPath:bundle toPath: path error:&error];
    

    NSMutableDictionary *savedStock = [[NSMutableDictionary alloc] initWithContentsOfFile: path];

但是,假设我对应用程序中的 Settings.plist 文件进行了一些更改,例如添加另一行。然后,如果我发布它,已经拥有我的应用程序的用户将拥有一个过时的Settings.plist 文件。关于解决方法或任何东西的任何想法?我已经尝试直接从NSString *bundle 访问Settings.plist 文件,但是这些值没有“保存”。

【问题讨论】:

【参考方案1】:

您需要进行文件修改日期检查,请参阅my answer here。然后如果修改日期晚于上次检查日期,请下载 Settings.plist 文件并在用户应用中替换它。

【讨论】:

但是,这不会将用户保存的所有设置都替换为默认设置吗?

以上是关于Settings.plist iOS的主要内容,如果未能解决你的问题,请参考以下文章

如何等待 plist 写操作完成?

Mac 本地搭建服务器实现itms-services方式安装ipa(自制证书)

在 XcodeGen 中安装 firebase 分析时出错

将帐户存储到密码和帐户(iOS 设置)

iOS:如何检查是不是启用了触觉反馈(iOS 设置)

在 PhoneGap 中使用 JavaScript 创建和使用 iOS settings.bundle 值