NO1. IOS文件持久化
来源:互联网 发布:那你的花呗只能淘宝 编辑:程序博客网 时间:2024/05/16 15:41
IOS文件持久化
持久化(presistence)即把文件数据保存到可存储设备中
包括以下几种方式:属性列表(property List)、对象归档、SQlite、CoreData
1.属性列表:property list里面存取的数据类型及其有限包括数组、字典、字符串等,
property list还经常用来配置应用程序的设置,存放少量数据。NSUserdefault是plist的一种,也是一种单例模式。
创建plist 按command +N快捷键创建,或者File —> New —> New File
//读取plist,注意文件名大小写
NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"TopSites"
ofType:@"plist"];
NSMutableDiceonary *data =
[[NSMutableDiceonary alloc] initWithContentsOfFile:plistPath];
NSLog(@"%@", data[@"TopSites"][0][@"TopSiteTitle"]);
//添加一项内容
[data setObject:@"add some content" forKey:@"NewKey"]; //获取应用程序沙盒的Documents目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *plistPath1 = [paths objectAtIndex:0]; //得到完整的文件名
NSString *filename = [plistPath1 stringByAppendingPathComponent:@"TopSites1.plist"];
//写入
[data writeToFile:filename atomically:YES];
2.对象归档:要求在类中实现的数据的每个属性都是基本数据类型或都符合NSCoding协议的某个类的实例
实现NSCoding和NSCopying协议
NSCoding协议声明了两个方法:
-(void)encodeWithCoder:(NSCoder *)aCoder, 是将对象写入到文件中。也称为序列化过程。
-(id)initWithCoder:(NSCoder *)aDecoder,是将文件中的数据读入到对象中。也称为反序列化过程。
NSCopying协议声明了一个方法:
-(id)copyWithZone:(NSZone *)zone ,是将对象复制的方法。
3.SQLite数据库
嵌入式数据库的一大好处就是在你的程序内部不需要网络配置,也不需要管理。因为客户端和服务器在同一进程空间运行。SQLite 的数据 库权 限只依赖于文件系统,没有用户帐户的概念。SQLite 有数据库级锁定,没有网络服务器。它需要一些内存, 其它开销很小,适合用于嵌入式设备。你需要做的仅仅是把它正确地编译到你的程序中去。
FMDB的下载地址https://github.com/ccgus/fmdb
SQLite数据增删查改参见
http://www.blogjava.net/myqiao/archive/2011/07/13/354298.html
http://www.cnblogs.com/linjiqin/archive/2011/05/27/2059937.html
- NO1. IOS文件持久化
- ios数据本地持久化 之 使用文件持久化
- ios读写文件 数据持久化
- IOS 文件读写 数据持久化
- iOS数据持久化 归档 plist文件
- No1
- NO1
- No1
- NO1
- NO1
- NO1
- no1
- iOS文件操作和数据持久化总结
- IOS之数据持久化 (简单对象写入文件)
- IOS开发--数据持久化篇之文件存储(一)
- IOS开发--数据持久化篇之文件存储(二)
- iOS数据持久化(-)属性文件
- iOS数据持久化文件读写之偏好设置
- fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 正确解决方案
- VC与PE的区别
- 进程\线程间通信学习笔记(一)
- 汇编—#4用ResEdit 编写资源文件
- 内存对齐
- NO1. IOS文件持久化
- C++ 与java
- 无工作状态结束···
- CCD原理结构图
- 浅析Struts1和Struts2的Action线程安全问题
- GCD详解
- 【SQL】MySQL之使用mysqlbinlog进行增量备份及恢复详解
- 黑马程序员-面向对象-泛型List与键值对Dictionary-
- CENTOS 5.8 编译安装nginx + php-fpm + mysql + pcre + apc