IOS编程 之 本地存储
来源:互联网 发布:北大青鸟网络管理 编辑:程序博客网 时间:2024/05/16 12:08
-(void)dealloc{ [super dealloc];}- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self;}- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view. self.navigationController.navigationBar.translucent = NO; [self getDocumentsPath]; [self writeString]; [self writeArray]; [self writeDic]; [self writeToString]; [self writeData]; [self userDefaultsWrite]; [self archiveObject]; [self unarchiveObject];}- (void)getDocumentsPath{ //获取沙盒路径 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSLog(@"1===%@",paths); }#pragma mark 字符串的写入和读取//字符串的写入和读取- (void)writeString{ //获取文件地址 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); //获取第一个字符串 NSString *string = [paths objectAtIndex:0]; //创建存储字符串的路径 string = [NSString stringWithFormat:@"%@%@",string,@"/text.txt"]; NSError *error = nil; NSString *value = @"范总擦黑板"; //写入到文件中 [value writeToFile:string atomically:YES encoding:NSUTF8StringEncoding error:&error]; if (error) { NSLog(@"error == %@",error); } //字符串的读取 NSString *read = [[NSString alloc]initWithContentsOfFile:string encoding:NSUTF8StringEncoding error:&error]; NSString *read1 = [NSString stringWithContentsOfFile:string encoding:NSUTF8StringEncoding error:&error]; NSLog(@"%@",read1); NSLog(@"读取字符串 :%@",read); [read release]; }#pragma mark 数组的写入和读取//数组的写入和读取- (void)writeArray{ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *string = [paths objectAtIndex:0]; //创建存储数组的路径 string = [NSString stringWithFormat:@"%@%@",string,@"/arr.txt"]; //定义一个数组 NSArray *array = [NSArray arrayWithObjects:@"KJJ",@"PYT", nil]; //写入数组 [array writeToFile:string atomically:YES ]; //读取 NSArray *read = [[NSArray alloc]initWithContentsOfFile:string]; NSLog(@"读取数组 :%@",read); [read release];}#pragma mark 字典的写入和读取//字典的写入和读取- (void)writeDic { //获取文件地址 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //获取第一个字符串 NSString *string = [paths firstObject]; //创建存储字符串的路径 string = [NSString stringWithFormat:@"%@%@",string,@"/dic.txt"]; //定义一个字典 NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"A",@"a",@"B",@"b" , nil]; [dic writeToFile:string atomically:YES]; // NSDictionary *read = [[NSDictionary alloc]initWithContentsOfFile:string]; NSLog(@"读取字典 :%@",read); [read release];}- (void)writeToString{ //先读取 在拼接 然后重新写入 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *string = [paths firstObject]; string = [NSString stringWithFormat:@"%@/text.txt",string]; NSString *write = @"搜噶"; [write writeToFile:string atomically:YES encoding:NSUTF8StringEncoding error:nil]; NSLog(@"%@",string); }//二进制对象的写入- (void)writeData { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *string = [paths firstObject]; string = [NSString stringWithFormat:@"%@%@",string,@"/data"]; //将字符串转换为utf8类型的二进制编码格式 NSString *value = @"o ha yo gu za yi ma si"; //只有这一种方法 NSData *data = [value dataUsingEncoding:NSUTF8StringEncoding]; [data writeToFile:string atomically:YES]; NSLog(@"%@",data); //读取 NSData *read = [NSData dataWithContentsOfFile:string]; //只有这一种方法 NSString *read1 = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"%@",read); NSLog(@"%@",read1); }- (void)userDefaultsWrite{ //轻量级存储 存储一些和登陆信息有关的 存储方式和字典一样 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:@"不得不爱" forKey:@"name"]; //同步存储 [defaults synchronize]; }- (void)readUserDefaults{ NSString *value = [[NSUserDefaults standardUserDefaults]objectForKey:@"name"]; NSLog(@"%@",value);}//复杂类型的对象存储 针对自己创建的类和对象 model//归档 即将自己创建的model类对象转换为二进制格式 通过二进制格式进行存储- (void)archiveObject{ Student *student = [[Student alloc]init]; student.name = @"金在中"; student.sex = @"男"; student.age = 20; //NSArray *array = [NSArray arrayWithObjects:student, nil]; NSData *data = [NSKeyedArchiver archivedDataWithRootObject:student]; //写入 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *string = [paths firstObject]; string = [NSString stringWithFormat:@"%@/model",string]; [data writeToFile:string atomically:YES]; }//解档 将归档后的二进制文件解档为相对应的model类型对象- (void)unarchiveObject{ NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES); NSString *string = [paths firstObject]; string = [NSString stringWithFormat:@"%@/model",string]; NSData *data = [NSData dataWithContentsOfFile:string]; Student *model = [NSKeyedUnarchiver unarchiveObjectWithData:data]; NSLog(@"%@,%@,%d",model.name,model.sex,model.age); }
本地存储之归档与解档
//归档协议 序列化协议- (void)encodeWithCoder:(NSCoder *)aCoder{ [aCoder encodeObject:self.name forKey:@"name"]; [aCoder encodeObject:self.sex forKey:@"sex"]; NSNumber *num = [NSNumber numberWithInt:self.age];//装换类型 [aCoder encodeObject:num forKey:@"age"];}//解档,反序列化- (id)initWithCoder:(NSCoder *)aDecoder{ if (self = [super init]) { self.name = [aDecoder decodeObjectForKey:@"name"];//decode 反编码 self.sex = [aDecoder decodeObjectForKey:@"sex"]; NSNumber *num = [aDecoder decodeObjectForKey:@"age"]; self.age = [num intValue]; } return self;}
0 0
- IOS编程 之 本地存储
- ios 本地存储之NSUserDefaults
- iOS 本地存储之Txt文本存储
- IOS学习笔记之本地存储
- iOS 本地存储之沙盒(Document)
- iOS APP之本地数据存储
- iOS 本地轻量级数据存储之NSUserDefaults
- ios本地存储篇
- ios本地数据存储
- iOS中本地存储
- iOS 存储本地
- IOS中的本地存储
- <IOS>浅析本地存储
- Ios userDefaultes本地存储
- iOS本地存储NSUserDefaults2
- iOS 本地存储NSUserDefaults
- iOS NSUserDefaults本地存储
- iOS的本地存储
- jquery获取元素值乱
- Netty4 使用总结
- php绝对路径与相对路径之间关系的的深入研究注释规范郊
- POJ 2506 Tiling 递推
- Uva - 10106 - 大整数相乘
- IOS编程 之 本地存储
- 计算随机数边产生平方,平方根,自然对数的小程序
- liunx执行 *.sh 出现"目录或文件不存在"
- Princeton Algorithms: Part 1 [week 4: Binary Search Trees]
- jquery中的.on()
- Win32应用程序开发:完整的开发流程
- leetcode 66 Plus One
- ubuntu14.04安装之后输入法,鼠标闪烁,QQ,字体等问题解决方案
- java 日期加一天减一天