美文网首页iOS数据持久化iOS缓存iOS 开发
[iOS开发]数据的缓存以及在程序中的处理机制0

[iOS开发]数据的缓存以及在程序中的处理机制0

作者: 小多多 | 来源:发表于2016-09-27 14:46 被阅读443次

关于数据的缓存,网上的资料和博客很多,总的来说五种方法,plist,写文件,NSUserDefaults,FMDB等操作数据库以及苹果自家的coreData,这些如何如何使用,资料文档很多,这里不想多说。
主要想说的是在程序中如何使用它们,用来缓存程序中的数据。直接说现在我正在用的处理方法。

首先,数据可以分为这几类,一类是用户主动下载的视频音乐之类的,这些文件相对很重要,一般存在Documents里面,当然,我没做过视频音乐下载类的应用,这方面的处理还有实际用过,这里就不说明。
另一类的数据就是在用户界面展示的数据,通过网络请求封装到模型里面展示在UI上的数据,这类数据也可以分两种,一种是主界面的数据,另一种是二级页面甚至更深层级的页面的数据。

首先说这两类数据的区别,主界面的数据一般下次进入程序,需要显示上次退出前的数据,而二级页面的数据,只需要缓存在内存中,保证进入后刷新,跳转返回后再进去先显示之前的数据再刷新,程序退出再进去时,不需要显示上次的数据。
简单点说,就是主界面的数据缓存要存在程序的若干个生命周期中,每次更新。而二级页面的缓存数据只需要存在于程序的一个生命周期中。这是目前我的处理逻辑,主界面的数据的重要性大于二级界面,因为用户每次进app看到一片空白体验很差,二级界面则不需要。

再来说具体这两种数据存在哪里。主界面的数据由于需要存在多个程序的生命周期中,所以需要存在沙盒中,我现在的处理就是需要缓存的模型遵循NSCoding协议,以文件的形式存入tmp文件夹,当然如果你觉得缓存相对重要,也可以存到Library/Caches文件夹中。
二级界面以及更深界面的数据,我处理的方式是数据缓存在NSCache中,自建一个NSCache的单例,专门用来缓存这些数据。当收到系统内存警告时,会自动清空。跟上面的temp文件夹类似,系统会自动管理。

详细流程图如下:

流程图.001.jpeg

小提醒Tip:
更新版本更改版本号的时候,最好做一个判断,如果程序更新了版本,最好清空之前缓存的主界面的数据,不然如果模型有改动,可能会造成程序崩溃。

这算是一个大纲吧,具体代码整理之后我会封装一个数据缓存的demo,会在之后的文章中介绍。
大家有兴趣可以多多支持我的其它文章
传送门

相关文章

  • [iOS开发]数据的缓存以及在程序中的处理机制0

    关于数据的缓存,网上的资料和博客很多,总的来说五种方法,plist,写文件,NSUserDefaults,FMDB...

  • iOS开发数据库篇—SQLite简单介绍

    iOS开发数据库篇—SQLite简单介绍 一、离线缓存 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数...

  • SQLite

    iOS开发数据库篇—SQLite简单介绍 一、离线缓存在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据...

  • 数据库之移动端SQLite3

    iOS开发数据库篇-SQLite简单介绍一、应用场景-离线缓存在项目开发中,通常都需要对数据进行离线缓存的处理,如...

  • 【ThirdParty】FMDB

    iOS数据存储 在项目开发中,通常都需要对数据进行离线缓存的处理,离线缓存一般都是把数据保存到项目的沙盒中。有以下...

  • IOS数据存储方式汇总

    @TOC IOS数据存储简介 在项目开发当中,我们经常会对一些数据进行本地缓存处理。离线缓存的数据一般都保存在AP...

  • iOS开发之归档(NSKeyedArchiver)和反归档(NS

    前言 iOS开发中难免会遇到数据存储的问题,苹果为我们提供了沙盒机制持久化存储数据 (iOS程序默认情况下只能访问...

  • iOS中异常处理机制使用小结

    在iOS开发中经常会由于数组越界,添加数据为空,通信或者文件错误,内存溢出导致程序终端运行而引入异常处理机制。常用...

  • 小程序-应用缓存隔离度

    开发小程序不可避免的会使用到数据缓存,可能是缓存用户信息,也可能是缓存小程序产生的应用数据,那么关于小程序中缓存获...

  • iOS数据存储方式(Core Data/Keycahin/NSU

    前言 在iOS开发中数据存储的方式可以归纳为磁盘缓存和内存缓存:磁盘缓存分为两类:文件、数据库存储。 文件存储:N...

网友评论

本文标题:[iOS开发]数据的缓存以及在程序中的处理机制0

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