美文网首页
plist数据存取

plist数据存取

作者: solozyx | 来源:发表于2016-08-23 13:18 被阅读35次

    属性列表是一种XML格式的文件,拓展名为plist
    如果对象是 NSStringNSDictionaryNSArrayNSDataNSNumber等类型就可以使用 writeToFile:atomically:方法直接将对象写到属性列表文件

    // NSUserDomainMask 在用户目录下查找
    // YES 代表用户目录的 ~ 展开
    // NSDocumentDirectory 查找Documents文件夹
    // 建议使用如下方法动态获取
    
    NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    // 拼接文件路径
    NSString *path = [doc stringByAppendingPathComponent:@"abc.plist"];
    // /Users/admin/Library/Developer/CoreSimulator/Devices/95A0E48B-2AF9-45A0-83AE-6C065C293B5E/data/Containers/Data/Application/04CFCCAA-0AFC-4E48-836A-B208B014E831/Documents/abc.plist
    
    NSArray *arr = @[@"solozyx", @"99"];
    [arr writeToFile:path atomically:YES];
    
    1-plist存储NSArray.png 2-plist存储NSArray.png
    NSDictionary *dict = @{@"name": @"solozyx", @"age":@"99"};
    [dict writeToFile:path atomically:YES];
    
    3-plist存储NSDictionary.png
    #import <Foundation/Foundation.h>
    @interface Person : NSObject
    @property (nonatomic, copy) NSString *name;
    @end
    
    #import "Person.h"
    @implementation Person
    @end
    
    // plist只能存储系统自带的一些常规的类, 也就是有writeToFile方法的对象才可以使用plist保存数据
    // NSString/NSDictionary/NSArray/NSNumber/NSData ..
    // 自定义的对象不能保存到plist中
    
    4-自定义对象不能存储到plist文件.png
    NSString *doc  = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    NSString *path = [doc stringByAppendingPathComponent:@"abc.plist"];
    // 读取数据
    NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
    NSLog(@"%@", dict);
    
    /*
    2016-08-23 13:19:58.344 plist数据存取[87231:1284066] {
        age = 99;
        name = solozyx;
    }
    */
    
    
    5-属性列表NSDictionary的存储和读取过程.png

    相关文章

      网友评论

          本文标题:plist数据存取

          本文链接:https://www.haomeiwen.com/subject/omzgsttx.html