iOS 数据存储
来源:互联网 发布:商品优化是什么意思 编辑:程序博客网 时间:2024/05/22 00:37
一、plist存储
1.获取Documents的路径,有两种方式:
<1>
NSString *home = NSHomeDirectory(); // 获取应用程序沙盒目录// 获取到根目录后,设置路径NSString *path = [home stringByAppendingString:@"/Documents"];NSString *path = [home stringByAppendingPathComponent:@"Documents"];
NSUserDomainMask 表示在在用户目录下搜索,YES代表用户目录的~(主目录),NSDocumentDirectory 表示查找Document文件夹;
<2>
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
2.写入到文件中
NSArray *arr;[arr writeToFile:path atomically:YES];NSDictionary *dict;[dict writeToFile:path atomically:YES];
plist只能存储系统自带的一些常规的类,也就是有writeToFile方法的对象才可以使用plist保存数据;(例如:字符串、字典、数据、NSNumber、NSData…)自定义对象不能保存到plist中;
二、Preferences
偏好设置是专门用来保存应用程序的配置信息的,一般情况不要在偏好设置中保存其它数据;利用系统的偏好设置来存储数据,默认存储在Preferences文件夹下面;偏好设置会将所有的数据保存到同一个文件中;
存取步骤:
1.获取NSUserDefaults对象
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
2.保存数据
[defaults setObject:@"ccflying" forKey:@"name"];[defaults setInteger:24 forKey:@"age"];
此操作不会立即保存数据到文件中,会在将来的某一个时间点自动将数据保存到Preferences文件夹下面 。
[defaults synchronize]; // 使NSUserDefaults立即保存数据
3.使用NSUserDefaults读取数据
[defaults objectForKey:@"name"];
三、NSKeyedArchiver 归档(NSCoding)
如果想将一个自定义对象保存到文件中,该对象必须实现NSCoding协议;
NSCoding有两个重要的方法:
1.存储
-(void)encodeWithCoder:(NSCoder *)aCoder{ [aCoder encodeObject:self.name forKey:@"name"]; [aCoder encodeInteger:self.age forKey:@"age"];} // 当将一个自定义对象保存到文件的时候就会调用该方法,在该方法中实现具体的数据存储;
2.读取
-(id)initWithCoder:(NSCoder *)aDecoder{ if(self = [super init]){ } return self;}// 当从文件中读取一个对象的时候就会调用此方法,在该方法中实现具体的数据的读取;
3.使用NSKeyedArchiver / NSKeyedUnarchiver存取对象
[NSKeyedArchiver archiveRootObject:p toFile:path]; // 存取数据[NSKeyedUnarchiver unarchiveObjectWithFile:path]; // 读取数据
iOS会把Preferences和Documents中的文件备份到iTunes;
tmp文件夹下的东西随时可能会被删除掉,而caches则不会;
四、文件解压缩
1.解压
NSString filepath; NSString caches;[NSZipArchive unzipFileAtPath:filepath toDestination:caches]; // 该操作比较耗时
2.压缩
NSArray *pngs = [[NSBundle mainBundle] pathsForResourcesOfType:@"png" inDirectory:nil]; // 获取图片数组NSString *path; // .../pngs.zip[NSZipArchive createZipFileAtPath:path withFilesAtPaths:pngs];
0 0
- IOS 数据存储
- IOS 数据存储
- ios开发 数据存储
- IOS 数据存储
- ios数据存储
- IOS 数据存储
- IOS 数据存储
- IOS 数据存储
- ios数据存储小结
- iOS 数据存储
- ios开发 数据存储
- ios数据存储
- iOS 数据存储指导方针
- ios的数据存储
- iOS数据存储
- iOS归档存储数据
- IOS 数据存储
- iOS 数据存储
- android添加hid设备驱动
- alertView
- Coins (HDU_2844) 二进制优化+多重背包
- android项目导入v7
- anjularjs弹出model(模态框)
- iOS 数据存储
- opencv查询最大轮廓
- 110. Balanced Binary Tree
- LruCache和DiskLruCache实现二级缓存的自定义ImageLoader
- 检查Email格式是否合法的正则表达式
- 实现Fragment左右滑动onFling的手势识别
- Visual SVN导出仓库代码,项目代码备份,批量导出
- iOS Https SSL认证 - AFNetWorking
- 最全IDEA快捷键