plist数据存取
2016-08-23 本文已影响35人
solozyx
属性列表
是一种XML
格式的文件,拓展名为plist
如果对象是 NSString
、NSDictionary
、NSArray
、NSData
、NSNumber
等类型就可以使用 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