我有一个带有一些值的“设置”plist文件。我正在尝试读取plist,然后对其中一个设置进行更新。当我重新加载我的应用程序时,更新尚未生效,原始设置仍然存在。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"Settings.plist"];
NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath];
NSString *errorDesc = nil;
NSPropertyListFormat format;
NSMutableDictionary *settings = (NSDictionary *)[NSPropertyListSerialization propertyListFromData:plistXML mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&errorDesc];
if (!settings) NSLog(@"error reading plist: %@ , format: %lu", errorDesc, format);
//更新对象
[settings setObject:@"0" forKey:@"£50"];
[settings writeToFile:@"Settings.plist" atomically:YES];
答案 0 :(得分:0)
这个错误似乎就在这里。
[settings writeToFile:@"Settings.plist" atomically:YES];
这是plist的错误路径。如果我将其更改为
[settings writeToFile:plistPath atomically:YES];
一切正常
答案 1 :(得分:0)
如果这个plist执行它所暗示的内容(存储设置),那么NSUserDefaults就是为此而不必处理文件系统。