plist 文件写入与读取

作者: amberling | 来源:发表于2016-06-03 14:51 被阅读4065次
plist Xcode 搜索图片

plist是iOS中特有的一种文件形式,将数据写入plist文件的实质就是生成plist文件,那什么样的数据才能生成plist文件呢?答:数组和字典。

1, 将数组写入plist文件(文件储存到cache路径下)

NSArray *words = @[@"a", @"b", @"c", @"d", @"e", @"f", @"g", @"h", @"i", @"j", @"k", @"l", @"m", @"n", @"o", @"p", @"q", @"r", @"s", @"t", @"u", @"v", @"w", @"x", @"y", @"z"];
//获取设备缓存路径
NSString *cachePatch = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];

//拼接file路径,最终数据存储到words.plist文件中
NSString *filePath = [cachePatch stringByAppendingPathComponent:@"words.plist"];

//将words数组中数据写入filePath下
[words writeToFile:filePath atomically:YES];


NSSearchPathForDirectoriesInDomains( NSSearchPathDirectory directory, NSSearchPathDomainMask domainMask, BOOL expandTilde )方法参数说明:
directory: 搜索文件夹
domainMask: 搜索范围 (NSUserDomainMask 代表在用户中查找)
expandTilde: yes 表示路径展开,no 表示路径不展开 用~代替沙盒路径(一般情况用yes)

2,将字典写入plist文件

NSDictionary *personInfo = @{
                               @"name" : @"amber",
                               @"age" : @"18",
                               @"height" : @"165"};
//写入路径
NSString *cachePatch = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
NSString *filePath = [cachePatch stringByAppendingPathComponent:@"personInfo.plist"];

//将路径转换为本地url形式
NSURL *fileUrl = [NSURL fileURLWithPath:filePath];

//writeToURL 的好处是,既可以写入本地url也可以写入远程url,苹果推荐使用此方法写入plist文件
[personInfo writeToURL:fileUrl atomically:YES];

3,将元素为字典的数组写入plist文件


NSArray *products = @[
                              @{@"icon" : @"liantiaobao", @"title" : @"链条包"},
                              @{@"icon" : @"shoutibao", @"title" : @"手提包"},
                              @{@"icon" : @"danjianbao", @"title" : @"单肩包"},
                              @{@"icon" : @"shuangjianbao", @"title" : @"双肩包"},
                              @{@"icon" : @"xiekuabao", @"title" : @"斜挎包"},
                              @{@"icon" : @"qianbao", @"title" : @"钱包"}
                              ];

NSString *cachePatch = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
NSString *filePath = [cachePatch stringByAppendingPathComponent:@"products.plist"];
NSURL *fileUrl = [NSURL fileURLWithPath:filePath];
[products writeToURL:fileUrl atomically:YES];

4,读取plist文件

//获取需要读取数据plist路径
NSString *cachePatch = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
NSString *filePath = [cachePatch stringByAppendingPathComponent:@"products.plist"];

//将plist文件中数据转换成数组形式输出(要预先知道plist中数据类型,否则无法读出)
NSArray *products = [NSArray arrayWithContentsOfFile:filePath];
NSLog(@"%@", products);

参考:小码哥视频资料

相关文章

  • plist 文件写入与读取

    plist是iOS中特有的一种文件形式,将数据写入plist文件的实质就是生成plist文件,那什么样的数据才能生...

  • Plist文件的读取与写入

    1.创建plist文件command+n -> Resourece -> Property List.创建完成就可...

  • IOS plist 文件写入与读取

    数组写入plist文件(文件储存到cache路径下) 字典写入plist文件 将字典数组写入plist文件

  • plist文件的读取 写入

    手动创建的plist文件只能手动写入,代码写入的放在沙盒中 NSString*pathP = [[NSBundle...

  • swift3.0真机操作.plist文件

    问题:在使用.plist文件的时候,发现在模拟器里可以自如的写入,读取,更新.plist文件,但是真机调试的时候,...

  • fs文件系统操作

    基础写入文件 简单写入文件 流式文件写入 简单文件读取 流式文件读取 流式文件拷贝(读取 + 写入) 复制文件 f...

  • iOS开发写入、读取plist文件

    //文件管理器 NSFileManager *fileManager = [NSFileManager defau...

  • swift读取和写入plist文件

    var diaryList:String = NSBundle.mainBundle().pathForResou...

  • pList文件

    pList文件特点: 一,数据写入 写入pList文件的两种方式:手动写入&调方法写入 1,手动写入 2,调用方法...

  • 文件流

    写入流 writeStream.txt 读取流 读取流与写入流结合 文件流管道

网友评论

    本文标题:plist 文件写入与读取

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