plist数据存取

属性列表是一种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];
plist数据存取_第1张图片
1-plist存储NSArray.png
plist数据存取_第2张图片
2-plist存储NSArray.png
NSDictionary *dict = @{@"name": @"solozyx", @"age":@"99"};
[dict writeToFile:path atomically:YES];
plist数据存取_第3张图片
3-plist存储NSDictionary.png
#import 
@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;
}
*/

plist数据存取_第4张图片
5-属性列表NSDictionary的存储和读取过程.png

你可能感兴趣的:(plist数据存取)