iOS开发之数据存储之XML属性列表(plist)归档

1、概述

“归档”意思是持久化存储数据。plist文件是一种XML格式的文件,拓展名为plist。如果对象是NSString、NSDictionary、NSArray、NSData、NSNumber等类型,就可以使用writeToFile:atomically:方法直接将对象写到属性列表文件(plist文件)中。特别注意的是plist文件不能存储对象。

IOS常用文件存储方式有:

XML属性列表(plist)归档

Preference(偏好设置)

NSKeyedArchiver归档(NSCoding)

SQLite3

Core Data

2、归档NSDictionary

将一个NSDictionary对象归档到一个plist属性列表中:

首先,将数据封装成字典:

NSMutableDictionary *dict = [NSMutableDictionary dictionary];

[dict setObject:@"母鸡" forKey:@"name"];

[dict setObject:@"15013141314" forKey:@"phone"];

[dict setObject:@"27" forKey:@"age"];

其次,获取沙盒中Documents/stu.plist完整路径,根据路径将字典持久化到Documents/stu.plist文件中:

[dict writeToFile:path atomically:YES];//YES代表安全存储

成功写入到Documents目录下后如下图:

用文本编辑器打开,文件内容如下图:

用xcode打开属性文件如下图:

上面是从NSDictionary写入到plist文件,也可以从NSArray写入到plist文件,例如:

// 1.获得沙盒根路径

NSString *home = NSHomeDirectory();

// 2.拼接成document路径

NSString *docPath =

[home stringByAppendingPathComponent:@"Documents"];

// 3.新建数据

NSArray *data = @[@"jack", @10, @"ffdsf"];

//4.拼接成具体文件的路径

NSString *filepath =

[docPath stringByAppendingPathComponent:@"data.plist"];

// 5.写入数据

[data writeToFile:filepath atomically:YES];

3、恢复NSDictionary

读取Documents/stu.plist的内容,实例化NSDictionary

NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];

NSLog(@"name:%@", [dict objectForKey:@"name"]);

NSLog(@"phone:%@", [dict objectForKey:@"phone"]);

NSLog(@"age:%@", [dict objectForKey:@"age"]);

打印信息如下:

上面是读取到NSDictionary,对应地,我们也可以读取到NSArray,例如:

// 1.获得沙盒根路径

NSString *home = NSHomeDirectory();

// 2.document路径

NSString *docPath =

[home stringByAppendingPathComponent:@"Documents"];

// 3.文件路径

NSString *filepath =

[docPath stringByAppendingPathComponent:@"data.plist"];

// 4.读取数据

NSArray *data = [NSArray arrayWithContentsOfFile:filepath];

4NSDictionary的存储和读取过程

时间: 2024-11-17 11:14:54

iOS开发之数据存储之XML属性列表(plist)归档的相关文章

iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist

iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist) 一.ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存储自定义对象) 4.SQLite3(数据库,关系型数据库,不能直接存储对象,要编写一些数据库的语句,将对象拆开存储) 5.Core Data(对象型的数据库,把内部环节屏蔽) 二.应用沙盒 每个iOS应用都有?己的应?沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应?必须待在?己的沙盒里,其

iOS 应用数据存储方式(XML属性列表-plist)

iOS 应用数据存储方式(XML属性列表-plist) 一.ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存储自定义对象) 4.SQLite3(数据库,关系型数据库,不能直接存储对象,要编写一些数据库的语句,将对象拆开存储) 5.Core Data(对象型的数据库,把内部环节屏蔽) 二.应用沙盒 每个iOS应用都有?己的应?沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应?必须待在?己的沙盒里,其他应用不能访问该

ios应用数据存储方式(XML属性列表-plist)

ios应用数据存储方式(XML属性列表-plist) 一.ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存储自定义对象) 4.SQLite3(数据库,关系型数据库,不能直接存储对象,要编写一些数据库的语句,将对象拆开存储) 5.Core Data(对象型的数据库,把内部环节屏蔽) 二.应用沙盒 每个iOS应用都有?己的应?沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应?必须待在?己的沙盒里,其他应用不能访问该沙

李洪强iOS开发之数据存储

李洪强iOS开发之数据存储 iOS应用数据存储的常用方式 1.lXML属性列表(plist)归档 2.lPreference(偏好设置) 3.lNSKeyedArchiver归档(NSCoding) 4.lSQLite3 5.lCore Data Documents: 保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录.例如,游戏应用可将游戏存档保存在该目录 tmp: 保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除.应用没有运行时,系统也可能会清除该目录

iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)

一.ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存储自定义对象) 4.SQLite3(数据库,关系型数据库,不能直接存储对象,要编写一些数据库的语句,将对象拆开存储) 5.Core Data(对象型的数据库,把内部环节屏蔽) 二.应用沙盒 每个iOS应用都有?己的应?沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应?必须待在?己的沙盒里,其他应用不能访问该沙盒(提示:在IOS8中已经开放访问) 应?沙盒的文件系

ios开发之数据存储

iOS应用数据存储的常用方式 XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3 Core Data 应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是应用的文件夹),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Layer) 模拟器应用沙盒的根路径在: (apple是用户名, 6.0是模拟器版本)/Users/apple/Li

ios开发----应用数据存储的常用方法之plist存取方法

[注意]转载时请注明出处博客园-吃唐僧肉的小悟空http://www.cnblogs.com/hukezhu/ ios应用数据存储的常用方式主要有: XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3 Core Data ios应用沙盒机制 介绍这些方法之前,首先介绍一下应用沙盒的概念. ios应用沙盒机制就是指ios应用程序只能在为该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以

iOS开发:数据存储之plist文件操作

1.plist,全名PropertyList,即属性列表文件,它是一种用来存储串行化后的对象的文件.这种文件,在ios开发过程中经常被用到.这种属性列表文件的扩展名为.plist,因此通常被叫做plist文件.文件是xml格式的.Plist文件是以key-value的形式来存储数据.既可以用来存储用户设置,也可以用来存储一些需要经常用到而不经常改动的信息. 在对plist文件的操作有创建,删除,写入和读取.这四种操作中,写入和读取是比较常用的操作. 2.下面我对这四种操作进行一一的陈述. 首先,

iOS开发_数据存储方式

对于数据持久化的问题,博主并不准备在博文内放很多的代码进行更深一步解释,只是简单的介绍一下四种数据持久化,如有时间,会另外针对各个数据持久化的方法进行更进一步的阐述. 直接进入主题: 〈1.NSUserDefault 用来存储配置信息,开发者可以通过这个实例对象,对这些已有信息进行修改,也可以根据自己的需求创建新的配置项.这是一个系统的单例,是一个轻量级存储机制,一般用来存储用户的登录状态,一般不会用来存储复杂对象. 〈2.SQLite 用于查询需求较多的数据,擅长处理的数据类型其实与NSUse