以plist文件做本地存储

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以plist文件做本地存储相关的知识,希望对你有一定的参考价值。

1、把需要保存的信息已plist文件形式保存在本地,即写入沙盒:

/**
 *  写入本地(plist文件)
 */
- (void)saveArray
{
    // 1.获得沙盒根路径
    NSString *home = NSHomeDirectory();
    
    // 2.document路径
    NSString *docPath = [home stringByAppendingPathComponent:@"Documents"];
    
    // 3.新建数据
    NSDictionary *dict = @{@"haha":@"11",
                           @"hehe":@"12",
                           @"huhu":@"13",
                           @"gogo":@"14"
                           };
    
    NSString *filepath = [docPath stringByAppendingPathComponent:@"data.plist"];
    
    
    [dict writeToFile:filepath atomically:YES];
}

  其中Decuments是沙盒固定路径,data.plist是自己取的要保存的文件的名字;

2、当需要拿出保存的信息的时候,读取保存在本地的plist文件:

/**
 *  读取写入本地的plist文件
 */
- (IBAction)read {
    // 1.获得沙盒根路径
    NSString *home = NSHomeDirectory();
    
    // 2.document路径
    NSString *docPath = [home stringByAppendingPathComponent:@"Documents"];
    
    // 3.文件路径
    NSString *filepath = [docPath stringByAppendingPathComponent:@"data.plist"];
    
    // 4.读取数据
    NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:filepath];
    
    NSLog(@"%@", dic);
}

  

3、有时保存在本地的文件信息不是最新时,需要删除上次保存在本地的文件,然后重新保存的最新的信息在本地:

/**
 *  删除保存在本地的plist文件的数据
 */
- (void)remove{
    // 1.获得沙盒根路径
    NSString *home = NSHomeDirectory();
    
    // 2.document路径
    NSString *docPath = [home stringByAppendingPathComponent:@"Documents"];
    
    // 3.文件路径
    NSString *filepath = [docPath stringByAppendingPathComponent:@"data.plist"];
    
    NSFileManager *fileManager = [NSFileManager defaultManager];
    
    [fileManager removeItemAtPath:filepath error:nil];
}

  这样就完成了文件的本地存储。

对于小文件的存储,减少了用数据库存储的麻烦,以plist文件存储,轻便、快捷,操作简单。

有时候对于网络数据的缓存,如果数据不是很打的话,也是可以用plist文件存储的。

以上是关于以plist文件做本地存储的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发怎么获取本地数据和把数据存储到本地

如何将本地保存的 xml 文件保存到 .plist 文件中

IOS 存储方式(PList、NSUserDefaults、归档、CoreData、数据库、文件)

plist 文件中的 Xcode 4.6 本地化

iOS开发之JSON转PLIST(把存储json格式的文件转换成plist文件)

以 $HOME 开头的 plist 中存储的路径不会在 bash 脚本命令中扩展