NScoding 将自己定义的类的对象写入磁盘
在自己定义的类中需要在.h 文件中加入
在.m 文件众实现他的的两个代理方法,这个代理方法将会被自动调用
//解挡 从coder中读取数据,保存到相应的变量中
- (instancetype)initWithCoder:(NSCoder *)aDecoder{
self.jf_account = [aDecoder decodeObjectForKey:@"jf_account"];
self.jf_password = [aDecoder decodeObjectForKey:@"jf_password"];
return self;
}
//归档 读取实例变量,并把这些数据写到coder中去。序列化数据
- (void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:self.jf_account forKey:@"jf_account"];
[aCoder encodeObject:self.jf_password forKey:@"jf_password"];
}
NSKeyedUnarchiver 从二进制流读取对象
NSKeyedArchiver 把对象写到二进制流中去
工具类 .h 中这样写
#import@class JFAccount;
@interface JFAccountTool : NSObject
/**
*获取本地归档的账号信息
*/
+(JFAccount *)getAccount;
/**
*保存账号信息到本地磁盘
*/
+ (void)saveAccount:(JFAccount *)account;
/**
*删除本地磁盘的账户信息
*/
+(BOOL)delectAccount;
.m中这样写
+(JFAccount *)getAccount{
// 获取沙盒的路径,获取电话号码
JFAccount *account = [NSKeyedUnarchiver unarchiveObjectWithFile:JFAccountFile];
return account;
}
//保存信息
+(void)saveAccount:(JFAccount *)account{
//这个才是保存到沙盒中的方法
[NSKeyedArchiver archiveRootObject:account toFile:JFAccountFile];
}
//删除信息
+(BOOL)delectAccount{
NSError *error = nil;
BOOL result = [[NSFileManager defaultManager] removeItemAtPath:JFAccountFile error:&error];
return result;
}