我使用这个简单的方法,我发现写一个plist,但它似乎不起作用:
-(IBAction)modifyPlist:(id)sender{
NSBundle *mainBundle=[NSBundle mainBundle];
NSString *path=[mainBundle pathForResource:@"Preferences" ofType:@"plist"];
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithContentsOfFile:path];
[[dict objectForKey:@"Root"] setBool:YES forKey:@"startup"];
}
我做错了什么? 感谢
答案 0 :(得分:1)
您正在将文件加载到内存中,并修改该内存,但您没有将其写回磁盘。您需要使用NSDictionary
的{{1}}
-writeToFile:atomically:
答案 1 :(得分:0)
我希望你确切地知道你正在做什么,这是(出于何种原因)你的设计决定 -
因为您即将写入您应用的附件。
在Sandboxing下肯定会失败并且通常是一个糟糕的坏主意。
如果您在存储用户默认设置后,请在Mac上阅读存储首选项的方式:
Preferences and Settings Programming Guide
答案 2 :(得分:0)
// Make a path to the plist in the Documents directory (not the bundle directory)
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Preferences.plist"];
// Then after creating or making changes to your dictionary, write your dictionary out to the plist file
[dict writeToFile:path atomically:YES];