属性列表

来源:互联网 发布:艾可萨兽数据 编辑:程序博客网 时间:2024/06/08 03:13

         在做iOS开发时,经常用到到plist文件,  那plist文件是什么呢? 它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist ,因此通常被称为 plist文件,文件是xml格式的.

       对于只需要保存简单数据的应用而言,使用属性列表是一个不错的选择,NSArray,NSDictionary对象提供了- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag方法,该方法可以把NSArray,NSDictionary包含的数据写入属性文件.

      当恢复这些数据的时候,只要调用NSArray,NSDictionary的xxxWithContentsOfFile:(NSString *)path方法即可.

      但是要注意,如果对象是NSString、NSDictionary、NSArray、NSData、NSNumberNSValue等类型,就可以使用writeToFile:atomically:方法直接将对象写到属性列表文件中.这也意味着,如果NSArray,NSDictionary中保存了其他类型的对象,或者使用了程序员自定义的实例,将不能够直接调用NSArray,NSDictionary- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag方法执行保存.如果程序需要持久化保存自定义类的实例,则可以考虑选择对象归档的方法进行保存!


下面通过一个例子来学习一下属性列表保存数据:

    //1.获得文件路径
    NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
    NSString *fileName = [path stringByAppendingPathComponent:@"123.plist"];
    NSLog(@"%@",fileName);在这里可以根据路径找到对应的 plist 文件.


    //2.存储 存储时使用writeToFile: atomically:方法。 其中atomically表示是否需要先写入一个辅助文件,再把辅助文件拷贝到目标文件地址。这是更安全的写入文件方法,一般都写YES。
    NSArray *array = @[@"123", @"456", @"789"];
    [array writeToFile:fileName atomically:YES];
    
   // 3.读取
    NSArray *result = [NSArray arrayWithContentsOfFile:fileName];
    NSLog(@"%@", result);
  
 

0 0
原创粉丝点击