YYCache
YYCache copied to clipboard
YYCache保存模型后再取出来的问题
你好!今天尝试用YYCache缓存一个模型!结果取的时候模型对象指针存在,但对应属性为空?于是就去这样设置下
//SelectShop.h
@interface SelectShop : NSObject<NSCoding>
//SelectShop.m
@implementation SelectShop
-(instancetype)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super init]) {
self.name = [aDecoder decodeObjectForKey:@"name"];
}
return self;
}
-(void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:self.name forKey:@"name"];
}
@end
如上,在取的时候只有“name”属性有值,其它都为nil!
是不是模型类都要这样(如SelectShop.m里面,每个属性都归档解档)写才行???
是不是模型类都要这样(如SelectShop.m里面,每个属性都归档解档)写才行???
是不是模型类都要这样(如SelectShop.m里面,每个属性都归档解档)写才行???
下面是我的存取方法
//存
//1.用YYCache创建一个以KLCPDatabaseKey命名的数据库
YYCache *cache = [YYCache cacheWithName:KLCPDatabaseKey];
//2.把模型存储到数据库中
[cache setObject:aShop forKey:KCurrentShopKey withBlock:^{
LCPLog(@"存储当前model信息成功");
}];
//取
//1.获取数据库
YYCache *cache = [YYCache cacheWithName:KLCPDatabaseKey];
[cache objectForKey:KCurrentShopKey withBlock:^(NSString * _Nonnull key, id<NSCoding> _Nonnull object) {
SelectShop *aShop = (SelectShop *)object;
LCPLog(@"从本地数据库读取数据%@----%@",aShop,aShop.name);
}];
是的,对象必须要自己实现完整的 NSCoding 协议。
yymodel 里面有快速序列化的方法的 @chinesemanbobo
嗯嗯,后来我用runtime在模型里序列化了下。
发自网易邮箱大师 在2016年10月08日 15:27,jiangzhoubai 写道:
yymodel 里面有快速序列化的方法的 @chinesemanbobo
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.