当前位置: 首页 > article >正文

【多线程-第三天-NSOperation的练习-tableView异步下载网络图片-沙盒缓存 Objective-C语言】

一、沙盒缓存

通知

1.下边我们来看沙盒缓存,但是,我们先要来看一下,为什么要学这个东西,为什么要做这件事情,好,我们先来运行一下我们的程序,

通知

好,图片,先是从网络上下载,

通知

下载完成之后,就保存到了内存中,保存到我们那个图片的缓存池中来,现在,我把程序关掉,我再开,图片会从哪儿来,从内存来,还是重新下载,

通知

重新下载,是不是又要费用户的流量,我们来看,我把程序关掉,然后,运行,是不是重新下载了一遍,之前我是不是运行过这个程序了,

通知

我运行过一次程序,我是不是把图片下载过一遍了,现在用户重新把这个程序打开,又重新下载了一遍,你再关再开,又要重新下载,浪费用户的流量,所以我们要去解决这个问题,我们帮着用户去省点儿流量,

那图片下完了之后,应该放到哪儿呢,放到本地,放到本地的哪儿,沙盒里边来,所以,当图片下载完成之后,我们要把图片放到沙盒中,

沙盒其实就是我们应用中的一些文件夹,有几个文件夹,

通知

1)Documents:存放由应用程序生成的文件或数据,并且这些应用和数据,将来会自动去同步到iCloud,换一个手机,重新安装这个软件,它会把iCloud上的数据下载下来,不要保存从网络上下载的文件,从网络上下载的文件太大了,放到这个里边,你又不去清理,特别消耗硬盘空间,这个文件夹,iTunes会备份,iCloud备份和iTunes备份有什么区别,iCloud备份在苹果的服务器上,iTunes备份在当前的电脑上,

2)Library:里边有两个文件夹,一个是Cache,一个是Preferences(用户偏好),Cache是什么,缓存,临时把它存起来,所以我们Cache里边放的是一些临时文件,后续需要使用,Cache里边放什么,就是放我们从网络上下载的那些图片,离线地图数据,因为将来还会用,所以系统不会自动清理此目录,程序员需要提供清理此目录的功能,iTunes不会备份,

Library/Preferences:存储用户的一些偏好设置,比如说是否推送消息,这件事情你可以记录到用户偏好里边来,iTunes会备份这里边的内容,

3)tmp:这是真正的临时文件,保存临时文件,可能后续不需要使用,当时那一瞬间要用,比如说12306升级的时候,下载一个压缩包,下载完成这个压缩包之后,一解压,还要吗,不要了吧,这个压缩包我们就可以放在tmp文件夹里边,tmp里边保存的文件,不需要我们自己来清理,系统会自动清理,当系统的磁盘空间不足、或者系统重启的时候,会自动清理tmp文件夹,iTunes不会备份,

2.这是我们复习沙盒目录,下边我们要把图片保存到沙盒里边,保存到哪个文件夹,Cache,保存我们网络上缓存的这些图片,那我们想要把图片放到这个目录里边来,首先我要知道这个目录的路径,我们要用代码的方式,获取它的路径,会获取吗,顺便我们把Documents,和tmp,这个路径也获取一下,

通知

因为我们将来可能会在很多地方,都要往这个不同的沙盒路径里边去存数据,我们是不是每次都要写一段代码获取这个路径,我们可以把它写一次&#x


http://www.kler.cn/a/570442.html

相关文章:

  • MySQL 8 C++ 源码解析:EXPLAIN 实现机制
  • 掌握 ElasticSearch 聚合查询:Aggregations 入门与实战
  • Vue.js 的双向数据绑定是如何实现的?
  • 快速创建基于Scala的flink开发项目
  • React 之 Redux 第二十八节 学习目标与规划大纲及概要讲述
  • chrome下载文件提示“贵组织屏蔽了该文件,因为它不符合安全政策” 安装chrome插件出现问题
  • 安装 cnpm 出现 Unsupported URL Type “npm:“: npm:string-width@^4.2.0
  • Hyper-V -docker-vmware 三者的关系
  • 零信任沙箱:为网络安全筑牢“隔离墙”
  • 6.人工智能与机器学习
  • 快瞳通用文档解析技术是怎样赋能下游各类大语言模型任务?
  • Lua | 每日一练 (4)
  • mapbox基础,使用geojson加载heatmap热力图层
  • 利用Java爬虫获取1688店铺所有商品信息:实战指南
  • 3. 前后端实现压缩包文件下载
  • 汽车电子电控软件开发中因复杂度提升导致的架构恶化问题
  • EVOAGENT: Towards Automatic Multi-Agent Generation via Evolutionary Algorithms
  • 【Linux】信号保存
  • JavaWeb后端基础(5)
  • go语言转换json字符串为json数据