iOS数据存储方法总结
来源:互联网 发布:铁路预算软件 编辑:程序博客网 时间:2024/05/06 06:16
数据本地化的几种方式:
1.plist 2.偏好设置 3.归档 4.sqlite 5.CoreData 6.Keychain
XML属性列表(plist)
plist全名是:Property List,属性列表文件,通常被称为plist文件。文件是xml格式的。它是以key-value的形式来存储数据。
作用:可以用来存储用户设置。
缺点:plist只能存储系统自带的一些常规的类, 也就是有writeToFile方法的对象才可以使用plist保存数据。例如:NSString、NSDictionary、NSArray、NSData、 NSNumber等类型Preference(偏好设置)
偏好设置本质也是 plist。
作用:偏好设置是专门用来保存应用程序的配置信息,比如保存用户名、密码、字体大小、是否自动登录等小数据量信息。
缺点:不能存储大数据。NSKeyedArchiver归档(NSCoding)
可以保存对象到文件中,并能从文件中读取对象。
SQLite3 数据库
优点:里面封装了各种查询,插入,删除,更新数据等算法,速度非常快。 缺点:使用相对较难,需要记住sql语句。
Core Data
苹果提供的数据持久化的框架,是对SQLite3的封装。
能够将OC对象转化成数据,也能够将保存在数据库中的数据还原成OC对象。Keychain
Keychain是苹果提供的带有可逆加密的存储机制,普遍用在各种存密码的需求上。另外,由于App卸载只要系统不重装,Keychain中的数据依旧能够得到保留,以及可被iCloud同步的特性,大家都会在这里存储用户唯一标识串。所以有需要加密、需要存iCloud的敏感小数据,一般都会放在Keychain
数据存储的位置
Documents :保存应用运行时生成的需要持久化的数据
Library/Caches : 保存应用运行时生成的需要持久化的数据,一般存储体积大、不需要备份的非重要数据
Library/Preference : 保存应用的所有偏好设置,iOS的Settings(设置)应用会在该目录中查找应用的设置信息。
tmp : 保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。
- 沙盒根目录的获取方式:
NSString *home = NSHomeDirectory();
- Documents文件夹:
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; NSString *filePath = [path stringByAppendingPathComponent:@"xxx.plist"];
- Library/Caches文件夹:
NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]; NSString *filePath = [path stringByAppendingPathComponent:@"xxx.plist"]; 用法: //存 NSArray *arr = [[NSArray alloc] initWithObjects:@"1", @"2", nil]; NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject]; NSString *filePath = [path stringByAppendingPathComponent:@"xxx.plist"]; [arr writeToFile:filePath atomically:YES]; //取 NSString *filePath = [path stringByAppendingPathComponent:@"xxx.plist"]; NSArray *arr = [NSArray arrayWithContentsOfFile:filePath];
- Library/Preference文件夹:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setBool:self.close forKey:@"close"];
- tmp文件夹:
NSString *tmp= NSTemporaryDirectory();
sqlite
使用FMDB框架:https://github.com/ccgus/fmdb
FMDB有三个主要的类:FMDatabase,一个FMDatabase对象就代表一个单独的SQLite数据库用来执行SQL语句。FMResultSet,使用FMDatabase执行查询后的结果集。FMDatabaseQueue,用于在多线程中执行多个查询或更新,它是线程安全的
CoreData
详情: http://blog.csdn.net/jacob_ios/article/details/51549408Keychain
Keychain是苹果提供的带有可逆加密的存储机制,普遍用在各种存密码的需求上。另外,由于App卸载只要系统不重装,Keychain中的数据依旧能够得到保留,以及可被iCloud同步的特性,大家都会在这里存储用户唯一标识串。所以有需要加密、需要存iCloud的敏感小数据,一般都会放在Keychain。
1.存储的信息相对NSUserDefault 或者其它一些存储在 App 沙盒中的信息安全很多。
2.关键信息经过加密处理。
网上有很多关于 KeyChain 的访问组件,Apple 也提供了相应的 Demo。但是,感觉不怎么实用,操作起来相对麻烦。
所以推荐 KIKeyChain 这个组件。https://github.com/smartwalle/KIKeyChain
写入数据:
KIKeyChain *key = [KIKeyChain keyChainWithIdentifier:@"default_user"];[key setValue:@"user1" forKey:@"username"];[key setValue:@"password1" forKey:@"password"];[key write];
读取数据:
KIKeyChain *key = [KIKeyChain keyChainWithIdentifier:@"default_user"];NSLog(@"%@==%@", [key valueForKey:@"username"], [key valueForKey:@"password"]);
- iOS数据存储方法总结
- iOS数据存储方式总结
- iOS数据存储方式总结
- iOS数据存储方法大全
- iOS数据存储方法大全
- iOS数据存储方法介绍
- android数据存储方法总结
- iOS知识点总结——数据存储
- iOS知识点总结——数据存储
- iOS数据存储的各种方法集合
- Android数据存储的方法总结诶
- iOS开发:ios数据存储4个方法
- 总结:ios数据持久化存储&文件系统编程
- 总结:iOS数据持久化存储&文件系统编程
- 归档 NSCoding 数据存储小结《IOS编程》 读后总结
- iOS应用数据存储的常用方式 总结
- IOS中数据的存储方式总结 (待续。。。。。)
- iOS开发中本地数据存储的总结
- 网络赚钱靠谱项目推荐和骗局陷阱
- webdriver入门必看
- Tomcat中session详解(源码阅读)
- PAT 1001. 害死人不偿命的(3n+1)猜想 (15)
- poj 1144 Network【无向图求割顶模板题】
- iOS数据存储方法总结
- python中lambda表达式的使用
- Hadoop完全分布式HA配置hdfs zkfc -formatZK错误
- 共同学习Java源代码--数据结构--List接口
- PHP基本内置函数
- 使用util.js处理表格
- 互联网服务端技术——如何学(下A)
- 使用wangEditor富文本编辑器
- 理解404页面