是否可以读取和更新设置plist

时间:2011-11-07 10:41:54

标签: iphone objective-c ios

只是一个简单的问题。我对此并不确定。

当我将Objective.plist添加到Objective C iPhone项目并从中读取设置时。是否可以更新此文件中的设置?或者这个文件只是可读的,我应该在另一个位置创建一个副本,如下所示:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

并检查它在发布时是否存在?

1 个答案:

答案 0 :(得分:1)

您无法通过Xcode编辑应用中包含的文件,因此您可以将其复制到用户的文档文件夹中。

但是,由于您对设置plist文件感兴趣,我建议您使用NSUserDefaults保存设置,这会自动保存.plist文件:在applicationDidFinishLoading上的app代理中写

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (![defaults boolForKey:@"firstRunComplete"]) {
    [defaults setObject:optionOne forKey:@"optionOne"]; //replace
    [defaults setObject:optionTwo forKey:@"optionTwo"]; //replace
    [defaults setBool:YES forKey:@"firstRunComplete"];
    [defaults synchronize];
}

当您想要更改其中一个选项时

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:optionOne forKey:@"optionOne"]; //replace
[defaults setObject:optionTwo forKey:@"optionTwo"]; //replace
[defaults synchronize];

或者,您可以使用此方法编辑plist文件:

NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
[plistDict writeToFile:filePath atomically: YES];