iOS数据持久化-归档NSKeyedArchiver
来源:互联网 发布:数据统计分析员招聘 编辑:程序博客网 时间:2024/05/16 01:40
归解档操作(NSKeyedArchiver/NSKeyedUnArchiver)通过对自定义对象进行操作。归解档后的自定义对象很方面进行持久化操作,方便于对象以文件的形式进行存储。归解档的对象需要实现NSCoding协议。
1、自定义对象实现NSCoding协议
@interface UserModel : NSObject<NSCoding>
@property(nonatomic,copy)NSString *name;@property(nonatomic,assign)NSInteger age;@property(nonatomic,assign)BOOL sex;@end
#import "UserModel.h"@implementation UserModel//归档-(void)encodeWithCoder:(NSCoder *)aCoder{ [aCoder encodeObject:self.name forKey:@"name"]; [aCoder encodeInteger:self.age forKey:@"age"]; [aCoder encodeBool:self.sex forKey:@"sex"]; }//解档- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder{ if([self init]){ self.name = [aDecoder decodeObjectForKey:@"name"]; self.age = [aDecoder decodeIntegerForKey:@"age"]; self.sex = [aDecoder decodeBoolForKey:@"sex"]; } return self;}
2、使用NSKeyedArchiver进行对象归档
- (void)persistArchived{ NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject; NSString *filePath = [path stringByAppendingPathComponent:@"user.data"]; UserModel *user =[[UserModel alloc]init]; user.name = @"zhangsan"; user.age= 50; user.sex = NO; //调用NSKeyedArchiver 工厂方法实现归档: [NSKeyedArchiver archiveRootObject:user toFile:filePath]; //解档:从文件中解档对象就调用NSKeyedUnarchiver的一个工厂方法 unarchiveObjectWithFile:。 UserModel *unarchiverUser = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath]; NSLog(@"unarchiverUser-name%@,unarchiverUser-name%d, unarchiverUser-age%ld", unarchiverUser.name, unarchiverUser.sex, unarchiverUser.age);}
如果需要归档的类是某个自定义类的子类时,就需要在归档和解档之前先实现父类的归档和解档方法。 [super encodeWithCoder:aCoder] 和 [super initWithCoder:aDecoder] 方法;
建议对象也同时实现NSCopying协议,该协议允许复制对象,要实现NSCopying协议须实现 -(id)copyWithZone:(NSZone *)zone 方法 。
保存的文件的扩展名可以任意指定。
0 0
- IOS数据持久化之归档NSKeyedArchiver
- iOS数据持久化之NSKeyedArchiver(归档)
- iOS数据持久化-归档NSKeyedArchiver
- iOS数据持久化之归档NSKeyedArchiver
- iOS对象持久化归档 NSKeyedArchiver
- NSKeyedArchiver、NSKeyedUnarchiver 数据持久化归档
- 【IOS-Swift】实战笔记——数据持久化之归档NSKeyedArchiver
- ios开发学习笔记--数据持久化之归档解档(NSKeyedArchiver/ NSKeyedUnarchiver)
- 数据持久化(三)使用NSKeyedArchiver归档
- OC数据持久化方案2-NSKeyedArchiver归档
- IOS数据持久化之NSKeyedArchiver
- iOS - 数据持久化---- NSUserDefaults & NSKeyedArchiver
- 数据持久化-NSKeyedArchiver
- iOS 归档持久化数据
- iOS数据持久化 归档
- IOS数据持久化--归档
- 数据持久化之NSKeyedArchiver
- 数据持久化之NSKeyedArchiver
- vld调试(内存泄露)
- session_set_cookie_params()
- Android Graphics( 五):drawText()详解
- Java 6 JVM参数选项大全(中文版)
- App开发
- iOS数据持久化-归档NSKeyedArchiver
- 【Android Dev Guide - 04】 - Media - 学习使用MediaPlayer播放音乐
- 解决数据库保存中文的问题
- PHP模糊匹配
- Cocos2.2.3在线下载——sd卡容量判定
- import com.sun.image.codec.jpeg.JPEGCodec不通过 找不到包
- jiffies和NO_HZ
- ENVI学习资料和网站
- 安卓平台下访问StreamingAssets目录下文件