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

devtools/2025/3/4 18:05:34/

一、沙盒缓存

通知

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.ppmy.cn/devtools/164522.html

相关文章

数据挖掘中特征发现与特征提取的数学原理

好的,我将深入研究数据挖掘中特征发现与特征提取的数学原理,涵盖统计学基础、特征工程的数学方法、以及在机器学习和深度学习中的应用。 我会整理相关数学公式和理论,包括主成分分析(PCA)、独立成分分析(I…

【Kubernets】K8S亲和性配置相关说明

K8S亲和性配置相关说明 配置说明**Kubernetes 亲和性配置详细说明** **一、亲和性类型****二、节点亲和性(Node Affinity)****1. 硬策略:requiredDuringSchedulingIgnoredDuringExecution****2. 软策略:preferredDuringScheduling…

如何通过rust实现自己的web登录图片验证码

在进行web系统开发时,为保障系统登录安全,登录页面中的验证码必不可少。在java中,我们可以利用相应的2D图像库快速生成图形验证码,而对于rust,我们没有合适的标准库进行图像验证码的生成。今天,我们通过使用…

nuxt常用组件库html-validator、@nuxtjs/i18n、@nuxt/image、@unocss/nuxt使用解析

html-validator 主要用于自动验证nuxt服务器呈现的HTML(SSR和SSG),以检测可能导致水合错误的HTML常见问题,有助于减少水合错误,检测常见的可访问性错误。 安装 npx nuxilatest module add html-validator配置 若自动更新nuxt.config.ts配置文…

如何使用Spring Boot框架整合Redis:超详细案例教程

目录 # 为什么选择Spring Boot与Redis整合? 1. 更新 pom.xml 2. 配置application.yml 3. 创建 Redis 配置类 4. Redis 操作类 5. 创建控制器 6. 启动应用程序 7. 测试 # 为什么选择Spring Boot与Redis整合? 将Spring Boot与Redis整合可以充分利…

WPF创建DeepSeek本地自己的客户端-进阶版

本次文章接上次写的“基础版”继续 WPF快速创建DeepSeek本地自己的客户端-基础思路版本 1 开发环境与工具 开发工具:VS 2015 开发环境:.Net 4.0 使用技术:WPF 本章内容:WPF实现一个进阶版的DeepSeek客户端。 效果图如下&#x…

【入门Web安全之前端学习的侧重点和针对性的建议】

入门Web安全之前端学习的侧重点和针对性的建议 一、HTML:理解攻击载荷的载体二、CSS:次要但需警惕点击劫持三、JavaScript:渗透测试的核心重点四、浏览器工具:渗透测试的实战武器五、学习建议与资源六、总结:渗透测试者…

2025全开源Java多语言跨境电商外贸商城/Tk/FB内嵌商城I商家入驻I批量下单I完美运行

商城程序介绍: 2025全新版UI 新增全球多站点选择 PC端:vueelementui 用户端使用:uniapp 管理端使用:vueelementui 后台服务使用:springbootmybatisplusmysql 商城功能介绍: 商城含21种语言 代理…