阐述

从业务层次来说,每个人都希望给用户提供更快更好的产品。由此,研发过程中会涉及到缓存这一技术。对于客户端研发来说,缓存写入沙盒后需要考虑的不简单是CRUD,还应包括缓存的安全性,这一点在用户信息上尤为突出。缓存安全性一方面可以从数据加密角度处理,另一方面可以从限制数据获取渠道角度处理。

探讨

由于iOS系统自带iCloud同步功能,沙盒中的文件默认又是开启iCloud同步能力的,所以从限制获取渠道角度出发,关闭文件同步能力是必然。理想状态下,我们希望该文件尽可能只存在当前设备应用沙盒中,不会在其设备间流通,可读性不高,降低信息曝光的可能性。

1 Code Part

我们首先来看一下Swift中对单一文件是如何限定iCloud同步能力。

通过上述代码,我们可以看出整块功能总体上是由URL、URLResourceValues 这两类对象完成。

1-1 URL.setResourceValues(_:)

官方注释可以解读出:

1 此方法只适用于文件系统资源路径(对于网络路径不可用)
2 此方法传入的新resourceValue会同步它刚刚配置的信息(不包含没有设置的)
3 对于只读文件以及resourceValue不支持修改的属性进行配置,这些动作会被忽视并且也不会被视为错误

1-2 URLResourceValues.isExcludedFromBackup

官方注释可以解读出:

1 此属性仅用于排除备份中不需要的缓存和其它应用程序支持的文件
2 对于用户文档来说,有一部分对文档的操作会将此属性重置为false,因此不建议在此类型文件使用

2 延伸

官方注释可以解读出:

1 文件系统资源路径才有URLResourceValues定义的属性
2 并非所有文件系统路径的URLResourceValues 所有属性值都存在
   (eg. 如果文件位于不支持创建日期的卷上,那么请求创建日期属性是有效的,但是返回的值将为nil,并且不会生成错误)
3 只有您传递给' URL '函数以接收此值的键所请求的字段才会被填充
   (其他键对应的值函数将返回nil,而不管文件系统上的底层属性是什么)
4 为了方便起见,可以从任何文件系统路径请求卷资源值。返回的值将反映资源所在卷的属性值。

资料

1 https://segmentfault.com/a/1190000002952903
2 https://stackoverflow.com/questions/39630532/urlresourcevalue-and-setresourcevalues-swift-3

iOS 探讨之 设置文件iCloud不同步相关推荐

  1. iOS 组件中设置文件支持MRC

    1. 设置该文件的Compiler Flags 为 -fno-objc-arc 使用cocopods 加载此组件时,在 Pods 下的 Build Phases 中的 Compile Sources目 ...

  2. 天翼云盘目录索引php,如何设置天翼云盘同步目录与文件?天翼云盘同步目录与文件的方法...

    如何设置天翼云盘同步目录与文件?有的用户还不是很熟悉,下文就是小编给大家分享天翼云盘同步目录与文件的方法,希望对你们有所帮助哦. 1.用户在首次登陆天翼云PC客户端时,客户端会为用户弹出文件同步设置窗 ...

  3. icloud同步指定文件夹停止同步操作方法【图文】

    使用iCloud的过程中,难免遇到有些文件夹你不希望同步.比如游戏制作,视频剪辑等的工程文件,iCloud的持续同步机制会使得这些文件夹中的部分文件持续处于被上传且不可用状态. icloud同步指定文 ...

  4. mac同步linux文件夹在哪里设置,Linux和Mac上的一些特殊文件将不再同步

    近日有用户报告, Mac/Linux上创建的某些文件, 无法成功同步到Windows平台上. 我们对这个问题进行了修正.  这个修正可能会影响到Linux和Mac用户中的极少数, 大概为数百位用户. ...

  5. icloud 如何同步_如何使用iCloud同步联系人,提醒等

    icloud 如何同步 If you use a Mac, iPhone, or iPad, you might have wondered what iCloud is using all that ...

  6. icloud 照片同步_如何在线查看iCloud照片

    icloud 照片同步 The best way to sit and thumb through your iCloud Photo Library is with an iPad. If you ...

  7. 如何在OS X照片中禁用iCloud照片同步

    Apple has finally taken the wraps off its iPhoto successor: Photos. It's great so far, but we're not ...

  8. 安卓ios文件上传.net 服务器,Windows 和 iOS 13无缝传输文件最快的方案

    原标题:Windows 和 iOS 13无缝传输文件最快的方案 这个方案不需要下载任何软件,但是要求 iOS 和 Windows 在同一个局域网内.再大的文件都可以在 iOS13 自带的的" ...

  9. iOS - 中获取各种文件的目录路径的方法

    转自:https://www.cnblogs.com/zrr-notes/p/5953445.html 我们的app在手机中存放的路径是:/var/mobile/Applications/4434-4 ...

最新文章

  1. Python可变数据类型高效编程
  2. 解决: Incorrect username or password, or no permission ( Docker 方式运行 Nexus3 登陆密码不为 admin123 、重置登陆密码)
  3. django中使用原生sql
  4. MariaDB安装、卸载以及相关设置(Linux服务器Mysql部署)
  5. python 设计模式之装饰器模式 Decorator Pattern
  6. 【RobotStudio学习笔记】(六)有效载荷
  7. angelajs中ajax,Fabric.js Triangle angle属性用法及代码示例
  8. win10缩放导致html,win10屏幕字体缩放模糊怎么办_win10缩放后字体模糊如何解决
  9. 2022最新高级java面试题
  10. centos 7.5 安装ruby -bash: ruby: command not found
  11. 企业内部网络的多出口相互冗余备份与负载均衡
  12. 报告:黑马11月就业薪资出炉!哪个学科更好就业?
  13. 【应用统计学】几种常见的概率分布
  14. 【sv】局部数据存储: 自动存储vs静态存储
  15. C#怎么判断是鼠标左键单击还是右键单击?
  16. 【R语言】他说每个生存曲线一定要看到p值,不能0.05,0.01,0.001
  17. r语言赋值为na_R语言中特殊值NaN、Inf 、NA、NULL
  18. 《python密码学编程》笔记
  19. k6新一代性能测试工具
  20. 一小时内了解密码学:你需要知道的一切

热门文章

  1. Cubase pro 12
  2. 二阶常系数非齐次线性微分方程的特征方程的选取技巧
  3. 嵌入式linux和桌面linux的区别
  4. ARM设计: 简化版任务调度器的实现和应用(2)
  5. 员工上网行为管理——一把怎样的双刃剑
  6. 三大UML建模工具Visio、Rational Rose、PowerDesign的区别
  7. 火鸟字幕合并器官方发布首页
  8. windows 下 netcat 的使用
  9. maxcms支持mysql吗_马克斯maxCMS整合M3U8播放器插件+教程
  10. 利用后台模板获取webshell