iOS-数据持久化(一)
2015-08-28 20:05
483 查看
数据持久化
常用方式: XML(plist,本质XML)
Preference(偏好设置)
NSKeyedArchiver(归档)
SQLite3(大数据,高效率)
CoreData(封装了SQLite3,iOS 5.0出现,低效率)
今天先总结前面的三种方式:
数据源持久化操作(plist)
1NSHomeDirectory沙河根路径
2stringByAppendingPathComponent:方法拼接根路径下的文件夹
3stringByAppendingPathComponent:方法拼接要创建的文件
4writeToFile:atomically:方法可以写入.plist文件
5读取:也是通过NSHomeDirectory获取路径,像懒加载一样读取
⚠plist存储数据的话,根本缺点就是只适用于Foundation框架自带类,虽然编译可过!
Preference(偏好设置)操作
1NSUserDefaults(单例对象)的standardUserDefaults方法获取对象
2用上面获得的对象 setObject:forKey:方法存个人偏好(类似字典)
补充:setInteger:forKey:等等方法存入各种类型的偏好参数
3立即同步:上面的对象 synchronize 方法马上把设置的数据同步
4读取:也是拿到NSUserDefaults对象,objectForKey:方法读取数据
⚠偏好设置本质上一样是XML生成plist进行存储,除了plist根本缺点文件名也不能改
对象的归档,(如果父类也有NSCoding归/读档的方法一定要先调用父类方法)
1[NSKeyedArchiver archiveRootObject:(NSObject*) toFile:path]文件后缀.data
2对象要复写encodeWithCoder:方法才能归档,需要遵守<NSCoding>协议
3在上面方法中调用NSCoder的encodeObject:_name forKey:@“key"描述存储方式 ( _name是待归档的对象属性 )
4读取:[NSKeyedUnarchiver unarchiveObjectWithFile:path]读出对象
5复写对象的initWithCoder:方法才能读档,也要遵守<NSCoding>协议
6_name = [dcoder decodeObjectForKey:]写出如何从.data文件读出对象
7encodeWithCoder:内的属性归档描述应该与initWithCoder:方法配对
常用方式: XML(plist,本质XML)
Preference(偏好设置)
NSKeyedArchiver(归档)
SQLite3(大数据,高效率)
CoreData(封装了SQLite3,iOS 5.0出现,低效率)
今天先总结前面的三种方式:
数据源持久化操作(plist)
1NSHomeDirectory沙河根路径
2stringByAppendingPathComponent:方法拼接根路径下的文件夹
3stringByAppendingPathComponent:方法拼接要创建的文件
4writeToFile:atomically:方法可以写入.plist文件
5读取:也是通过NSHomeDirectory获取路径,像懒加载一样读取
⚠plist存储数据的话,根本缺点就是只适用于Foundation框架自带类,虽然编译可过!
Preference(偏好设置)操作
1NSUserDefaults(单例对象)的standardUserDefaults方法获取对象
2用上面获得的对象 setObject:forKey:方法存个人偏好(类似字典)
补充:setInteger:forKey:等等方法存入各种类型的偏好参数
3立即同步:上面的对象 synchronize 方法马上把设置的数据同步
4读取:也是拿到NSUserDefaults对象,objectForKey:方法读取数据
⚠偏好设置本质上一样是XML生成plist进行存储,除了plist根本缺点文件名也不能改
对象的归档,(如果父类也有NSCoding归/读档的方法一定要先调用父类方法)
1[NSKeyedArchiver archiveRootObject:(NSObject*) toFile:path]文件后缀.data
2对象要复写encodeWithCoder:方法才能归档,需要遵守<NSCoding>协议
3在上面方法中调用NSCoder的encodeObject:_name forKey:@“key"描述存储方式 ( _name是待归档的对象属性 )
4读取:[NSKeyedUnarchiver unarchiveObjectWithFile:path]读出对象
5复写对象的initWithCoder:方法才能读档,也要遵守<NSCoding>协议
6_name = [dcoder decodeObjectForKey:]写出如何从.data文件读出对象
7encodeWithCoder:内的属性归档描述应该与initWithCoder:方法配对
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 我是运营,我没有假期
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- Tomcat端口被占用解决方法(不用重启)
- DB2数据库的安装
- C#实现把指定数据写入串口
- “传奇”图象数据存储方式
- 修复mysql数据库
- 初识SQLITE3数据库
- SQLServer 数据导入导出的几种方法小结
- MySQL数据备份之mysqldump的使用详解
- 超大数据量存储常用数据库分表分库算法总结
- C#实现窗体间传递数据实例
- SQL Server误区30日谈 第18天 有关FileStream的存储,垃圾回收以及其它