美文网首页
ios 数据缓存到内存

ios 数据缓存到内存

作者: fulen | 来源:发表于2018-07-03 18:21 被阅读32次

什么时候缓存到内存中去呢,就像大家用的比较多的开源库SDWebImage一样,如果加载过,那就从内存中去拿,这个是一次性的,程序kill掉之后就没了,那么现在刚好有这么一个需求也,就是要在内存中缓存一部分数据
废话不多说,首先我们需要一个UserManager类(单例类),然后
上代码
UserManager.h

@property(nonatomic,strong) NSMutableDictionary *spotfileCacheData;

// 缓存数据的方法
- (void)setSpotfileCacheDataWithReportDetail:(ReportDetail *)reportDetail;
@interface UserManager()

@end

@implementation UserManager
+ (instancetype)sharedInstance
{
    static id instance = nil;
    static dispatch_once_t token;
    dispatch_once(&token,^{
        if (!instance) {
            instance = [UserManager new];
        }
    });
    
    return instance;
}
// 懒加载
- (NSMutableDictionary *)spotfileCacheData {
    if (!_spotfileCacheData) {
        _spotfileCacheData = [NSMutableDictionary dictionaryWithCapacity:0];
    }
    return _spotfileCacheData;
}

- (void)setSpotfileCacheDataWithReportDetail:(ReportDetail *)reportDetail {
    if ([reportDetail.name isNotEmptyAndWhitespace]) {
        [self.spotfileCacheData setObject:reportDetail forKey:reportDetail.name];
    }
}

// 有些需求是在退出登录的时候,清空缓存的数据
那么可以在logout 方法里面将_spotfileCacheData置空,logout方法此处不写了

2. 调用

在需要缓存的页面,等数据请求回来之后,调用此方法

[[UserManager sharedInstance] setSpotfileCacheDataWithReportDetail:self.reportDetail];

使用缓存的话,直接遍历字典就行

for (ReportDetail *reportDe in [UserManager sharedInstance].spotfileCacheData.allValues) {
       // 
    }
// 如果内存中有,并且符合你选择的

大功告成,这样的

相关文章

  • ios 数据缓存到内存

    什么时候缓存到内存中去呢,就像大家用的比较多的开源库SDWebImage一样,如果加载过,那就从内存中去拿,这个是...

  • iOS中NSCache缓存机制

    应用场景: iOS中需要频繁读取的数据,都可以用NSCache把数据缓存到内存中提高读取性能。 正文: 一:定义 ...

  • NSCache分析

    应用场景: iOS中需要频繁读取的数据,都可以用NSCache把数据缓存到内存中提高读取性能。 正文: 一:定义 ...

  • 文件和流

    IO作用:解决设备和设备之间数据传输问题,内存->硬盘,硬盘->内存,键盘数据->内存数据存到硬盘上,就做到了永久...

  • 数据库入门 & 数据库管理

    引入 : 数据保存的三种方式 数据保存到内存:优点:读写非常快缺点:程序关闭导致数据丢失 数据保存到文件:优点:数...

  • IO模型

    IO的过程 一次IO都会有两个阶段:❶ 等待数据,即数据从磁盘到内核内存.❷ 复制数据,即数据从内核内存到进程内存...

  • python-序列化-json-pickle-shelve

    把内存数据,转成字符,叫序列化把字符转成内存数据叫反序列化内存数据存到硬盘时需要转成字符json.dumps() ...

  • iOS-归纳

    iOS内存分区,堆区 栈区等 内存管理 属性关键字、内存分区总结 iOS- 数据存储iOS开发数据库-FMDBiO...

  • Mysql数据库

    由于数据保存到内存与文件中,都会存在优缺点,所以可以选择将数据保存到数据库软件中。在数据库软件中,数据可以永久保存...

  • Mysql笔记之基础查询

    1、保存数据的容器 数组、集合等,把数据保存到内存,缺点一断电就没了。 文件,保存到硬盘,缺点不太适合查询。 2、...

网友评论

      本文标题:ios 数据缓存到内存

      本文链接:https://www.haomeiwen.com/subject/waujuftx.html