下午学习了一下归档(NSKeyedArchiver、NSKeyedUnarchiver)。归档就是将数据从内存写到闪存(硬盘),以作永久保存。这里只是记录了框架支持的数据类型(自定义数据类型的归档见“ios 自定义对象归档”)。这些数据类型包含如下:NSString、NSArray、NSDictionary、NSNumber、NSDate、NSData或是能将其转化为上述类型的对象。
以NSArray类型数据归档为例:
//获取沙盒(见“iOS沙盒机制”博文)下documents目录
NSArray *docmentPath =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
//将路径转化为NSString类型
NSString *stringPath = [docmentPath objectAtIndex:0];
//归档文件
NSArray *array = [NSArray arrayWithObjects:@"Hi", @"man", nil];
NSString *fileName = [stringPath stringByAppendingPathComponent:@"achiverFile.plist"];
//将数据归档到achiverFile
[NSKeyedArchiver archiveRootObject: arraytoFile: fileName];
//解归档
array = [NSKeyedUnarchiver unarchiveObjectWithFile: fileName];
//查看归档是否成功
NSLog(@"%@", [arrayobjectAtIndex:0]);
NSLog(@"%@", [arrayobjectAtIndex:1]);