1. 读取plist文件
首先新建一个plist文件加入到工程,起名为AppSettings.plist(随便叫什么都行)
主要是利用NSFileManager完成文件的读取,如果不存在就创建一个。创建的过程就是把bundle中的plist文件读出来再存到应用目录下。
NSLibraryDirectory指的就是应用沙盒中Library的目录。此外还有很多,具体戳这里。
最后就获得了plist中储存的NSMutableDictionary或者NSArray。
NSFileManager *fileManager=[NSFileManager defaultManager];
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *settingsFilePath=[[paths objectAtIndex:0] stringByAppendingPathComponent:@"AppSettings.plist"];
if(![fileManager fileExistsAtPath:settingsFilePath])
{
NSString *resourceFolderPath=[[NSBundle mainBundle]pathForResource:@"AppSettings" ofType:@"plist"];
NSData *mainBundleFile=[NSData dataWithContentsOfFile:resourceFolderPath];
[fileManager createFileAtPath:settingsFilePath contents:mainBundleFile attributes:nil];
}
NSMutableDictionary *dict=[[NSMutableDictionary alloc]initWithContentsOfFile:settingsFilePath];
fontSize=[[dict objectForKey:@"fontSize"] intValue];
2. 保存文件
同样是获取文件路径之后将NSMutableDictionary或者NSArray写入文件。函数是writeToFile:atomically,不过这个函数好像deprecated了,现在是writeToFile:atomically:encode:error。
<span style="white-space:pre"> </span>NSArray *paths=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
<span style="white-space:pre"> </span>NSString *settingsFilePath=[[paths objectAtIndex:0] stringByAppendingPathComponent:@"AppSettings.plist"];
<span style="white-space:pre"> </span>NSMutableDictionary *dict=[[NSMutableDictionary alloc]init];
<span style="white-space:pre"> </span>[dict setValue:[NSNumber numberWithInt:fontSize] forKey:@"fontSize"];
<span style="white-space:pre"> </span>[dict setValue:[NSNumber numberWithBool:receiveMessage] forKey:@"receiveMessage"];
<span style="white-space:pre"> </span>[dict writeToFile:settingsFilePath atomically:NO];
如果不存在就创建一个。