您的位置:首页 > 移动开发 > IOS开发

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:方法配对
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息