博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS - Plist 数据解析
阅读量:6947 次
发布时间:2019-06-27

本文共 2317 字,大约阅读时间需要 7 分钟。

前言

NS_AVAILABLE(10_6, 4_0) @interface NSPropertyListSerialization : NSObject
  • 如果对象是 NSArray 或 NSDictionary 可以将对象保存到 Plist 文件中,当根据 NSDictionary 创建 Plist 时,NSDictionary 中的键必须都是 NSString 对象。数组中的元素或字典中的值可以是 NSString、NSArray、NSDictionary、NSData、NSDate 和 NSNumber 对象。

  • iOS 实现的序列化方式的两种:NSKeyedArchiver,NSPropertyListSerialization。在这两种序列化方式中,NSData 都是序列化的目标。两种方式的不同点在于 NSPropertyListSerialization 是针对数组和字典类型的,而 NSKeyedArchiver 是针对对象的。

1、Plist 数据解析

  • Objective-C

    • Plist 反序列化

      NSData *plistData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"PListDataFile" ofType:@"plist"]];    /*        NSPropertyListImmutable = 0,                   不可变        NSPropertyListMutableContainers = 1,           容器可变        NSPropertyListMutableContainersAndLeaves = 2   容器和叶子可变            0 什么额外操作也不做        NSPropertyListOpenStepFormat = 1,              OpenStep 格式        NSPropertyListXMLFormat_v1_0 = 100,            XML 格式        NSPropertyListBinaryFormat_v1_0 = 200          二进制 格式            如果不需要格式传入 NULL,使用序列化之前的格式反序列化    */    id result = [NSPropertyListSerialization propertyListWithData:plistData options:0 format:NULL error:NULL];
    • Plist 序列化

      NSArray *array = @[@"bei", @"jing", @"huan", @"ying", @"nin"];    NSDictionary *dictionary = @{@"name":@"chen chao", @"age":@"18", @"info":@"Good Teacher"};    /*        NSPropertyListOpenStepFormat = 1,              OpenStep 格式,不可用        NSPropertyListXMLFormat_v1_0 = 100,            XML 格式        NSPropertyListBinaryFormat_v1_0 = 200          二进制 格式        options                                        应该永久设置为 0    */    NSData *arrayPlistData = [NSPropertyListSerialization dataWithPropertyList:array                                                                         format:NSPropertyListXMLFormat_v1_0                                                                        options:0                                                                          error:NULL];    NSData *dictionaryPlistData = [NSPropertyListSerialization dataWithPropertyList:dictionary                                                                              format:NSPropertyListXMLFormat_v1_0                                                                             options:0                                                                               error:NULL];

转载地址:http://gsonl.baihongyu.com/

你可能感兴趣的文章
360 网站安全通用防护脚本分享,可修复漏洞
查看>>
qt creator doxygen 快速注释文档
查看>>
学习 LLVM(12) SmallString
查看>>
[转]关于java文件读写、字节流、字符流的一点新得
查看>>
Yii2 Day 5: 创建用户模块
查看>>
java classloader的一个bug
查看>>
Java内存泄露分析
查看>>
常量池、栈、堆的比较
查看>>
二项分布、指数分布与泊松分布的关系
查看>>
关于Android中PendingIntent的认识
查看>>
java & orac版根据权重抽奖算法 (两个方案都有)
查看>>
mysql查询索引优化
查看>>
centos下载地址
查看>>
使用 ScheduledExecutorService 来替换 Timer
查看>>
ubuntu修改IP地址和网关的方法
查看>>
PS做动画,记得最后导出 存储为web格式,选择gif
查看>>
注册码
查看>>
windows服务器端口开放
查看>>
php防止模拟请求
查看>>
Textview的左边图片设置
查看>>