iOS - Plist 数据解析
前言
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];
iOS - Plist 数据解析的更多相关文章
- iOS - JSON 数据解析
iOS - JSON 数据解析 前言 NS_CLASS_AVAILABLE(10_7, 5_0) @interface NSJSONSerialization : NSObject @availab ...
- iOS - XML 数据解析
前言 @interface NSXMLParser : NSObject public class NSXMLParser : NSObject 1.XML 数据 XML(Extensible Mar ...
- 浅议iOS网络数据解析
/*------------------------------------ 数据解析: 1.JSON数据 --------------------------------*/ 重点:1.什么是JSO ...
- IOS 请求数据解析 XML 和 JSON
好久没写文章了,回忆一下以前的内容记录一下吧. 这一段主要接触的就是数据解析,就说一下数据解析 现在数据解析一般解析两种数据 xml 和 JSON 那就从xml解析说起吧 xml解析需要用到一个类 N ...
- iOS UI13_数据解析XML_,JSON
- (IBAction)parserButton:(id)sender { parserXML *parser =[[parserXML alloc] init]; [parser startPars ...
- iOS之数据解析时<null>的处理
在iOS开发过程中经常需要与服务器进行数据通讯,JSON就是一种常用的高效简洁的数据格式. 问题: 在项目中,一直遇到一个坑的问题,程序在获取某些数据之后莫名崩溃.原因是:由于服务器的数据库中有些字段 ...
- IOS - JSON数据解析 小3种方法
[manager GET:serverURL parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject ...
- iOS开发——数据解析Swift篇&简单json数据处理
简单json数据处理 //loadWeather var url = NSURL(string: "http://www.weather.com.cn/adat/sk/101240701.h ...
- 玩转iOS开发 - JSON 和 Xml 数据解析
前言 Json 和xml是网络开发中经常使用的数据格式,JSON轻量级.xml相对较复杂.所以如今用JSON的比例很大.基本上从server获取的返回数据都是JSON格式的,作为iOS开发人员,解析J ...
随机推荐
- (转载)PERL 处理CSV
#!/usr/bin/perl#use strict;open(FILE1,"C:/Perl/BX/BX-Users.csv");open(FILE2,"C:/Perl/ ...
- 【JQGRID DOCUMENTATION】.学习笔记.1.安装jqGrid
前面介绍了怎么使用其MVC方式,很好用.不过,觉得还是只使用前段比较好. 1.1 如何安装 到http://www.trirand.com/blog/?page_id=6 下载. </html& ...
- 执行maven-build.cmd失败
执行maven-build.cmd失败,显示:"Non-resolvable parent POM: Could not transfer artifact ......",如截图 ...
- HTML5 拖拽复制功能的实现方法
Internet Explorer 9FirefoxOpera 12ChromeSafari 5 v1.0代码部分 <!DOCTYPE html><html><head& ...
- Mac 终端命令汇总
OSX 的文件系统 OSX 采用的Unix文件系统,所有文件都挂在跟目录 / 下面,所以不在要有Windows 下的盘符概念. 你在桌面上看到的硬盘都挂在 /Volumes 下. 比如接上个叫做 US ...
- WPF:窗体置顶
1.设置窗体TopMost属性 private DispatcherTimer timer; public Window1() { InitializeComponent(); Loaded += n ...
- linux命令:du 命令
Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的. 1.命令格式: du [选项][文件] 2.命令功能 ...
- ecshop后台通过ajax搜索原理
ecshop的搜索其实是功能十分强大的,但是ecshop搜索功能前台和后台还不大一样,前台主要是通过get方式,提交的url进行分页,而在ecshop的后台,则是接受表单的搜索条件,然后通过js发布到 ...
- 动手动脑小程序——TryAndCatch
import java.util.Scanner; public class Gade { public static void main(String[] args) { // TODO 自动生成 ...
- 【转】表删除时 Cannot delete or update a parent row: a foreign key constraint fails 异常处理
转载地址:http://lijiejava.iteye.com/blog/790478 有两张表,结构如下: t_item: t_bid: id ...