美文网首页
数据缓存方案及目录结构

数据缓存方案及目录结构

作者: 进击的小矮人 | 来源:发表于2016-11-01 16:34 被阅读0次

方案:

1.网络数据优先:每次都是从网络获取数据,如果没有网络,从本地获取。
2.本地数据优先:每次都是从本地获取,如果本地不存在,从网络获取。
3.智能模式,先从本地获取数据,然后加载,同时继承从服务器获取数据,当从服务器获取数据后,然后刷新加载服务器数据。

1.如何判断有没有网络?

需要用到Reachability第三方库,可以从GitHub上下载。导入库后

Reachability *reachability = [Reachability reachabilityWithHostName:@"http://www.baidu.com"];
    //获取当前网络状态
    NetworkStatus status = reachability.currentReachabilityStatus;
    //没有网络
    if (status == NotReachable)
    {
        //从本地读取
        //刷新界面
        NSLog(@"从数据库中获取");
    }
    //有网络
    else
    {
        /**
         *  请求网络数据
         */
        NSLog(@"从网络获取");
    }

2.永久数据保存方式:

1.NSUserDefaults
2.归档(序列化)
3.文件保存
4.数据库(sqlite)
5.CoreData
6.KeyChain

3.app目录结构:

家目录下有三个文件夹,在xcode5之前,沙盒和里面有4个文件,多一个app。(家目录:即沙盒(SandBox),沙盒目的就是保护当前应用程序的数据,两个不同的app不能共用一个app的沙盒数据。)
3个文件:
     1.Documents:保存用户数据:用户产生的数据,比如下载图片,下载文件。改文件夹itunes备份里面的数据。
     2.Library:有2个子文件夹。分别是Caches和Preferences。一般缓存文件一般都保存到Caches文件夹下面。
     3.tmp:临时文件,当前程序终止的时候,该文件夹的数据会自动丢失。
     
     注意:家目录在真机上没有权限。
获取Documents路径
/*
     参数1:路径名字(ios能用到的:NSCachesDirectory,NSDocumentDirectory,NSLibraryDirectory)
     参数2:NSUserDomainMask(用户安装目录)
     参数3:YES表示完整路径
     */
    NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
    NSLog(@"%@",path);
获取Cache目录
path  = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
    NSLog(@"%@",path);
获取tmp路径
    NSTemporaryDirectory();

相关文章

  • 数据缓存方案及目录结构

    方案: 1.网络数据优先:每次都是从网络获取数据,如果没有网络,从本地获取。 2.本地数据优先:每次都是从本地获取...

  • 面试相关问题

    1.常用第三库(原理及优缺) AF GPUImage SDWebimage缓存实现原理?缓存内存结构数据结构?缓存...

  • 缓存穿透、击穿、雪崩

    redis常见的问题及解决方案:1、缓存穿透:缓存中查不到数据,数据库中也查不到。解决方案: 1》对查询条件的参数...

  • Java本地缓存

    引言 缓存是存储在内存中的KV数据结构,分为分布式缓存和本地缓存。 分布式缓存方案中,一般应用进程和缓存进程不在同...

  • “Linux 基础入门(新版)”实验报告3

    Linux 目录结构及文件基本操作 一、Linux目录结构 (1)FHS 第一层是/下面的各个目录要放什么文件数据...

  • Oracle树形结构数据--前台Ztree显示

    Oracle树形结构数据CONNECT BY PRIOR查询及Ztree前端页面数据展示 每本书基本都有目录,...

  • 缓存数据一致性

    读数据的标准姿势:先查缓存,如果缓存中数据不存在时读数据库,然后再将数据写回缓存。 相信这种读缓存方案争议较小...

  • Redis实现消息队列的4种方案

    原文链接:Redis实现消息队列的方案 Redis作为内存中的数据结构存储,常用作数据库、缓存和消息代理。它支持数...

  • redis底层数据实现及应用场景

    redis数据类型及底层实现 redis全局哈希表 String 底层数据结构: 简单动态字符串 应用场景: 缓存...

  • Gradle 缓存目录结构 缓存策略

    [TOC] gradle 缓存策略 Gradle 的缓存策略中,对于 SNAPSHOT 版本默认的缓存周期是 24...

网友评论

      本文标题:数据缓存方案及目录结构

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