觉得有必要先提供几个网址,可以仔细了解iCloud的相关介绍。
===》介绍性文章:
iCloud设计指南
CloudKit相关介绍===》API指导:
一遍先行者的总结
类似的总结,还看过这些:
Key-Value
Documents
Cloudkit
官方的介绍:
Key-Value
Documents与NSFileManager
CloudKit===》扩展阅读,或许可以提供一些不同想法:
iCloud Drive
CloudKit与其它平台的一点小对比
事实上没看明白这里解决的问题,但还是记录在这里
接触到iCloud的原因是最近项目需要实现应用之间的文件共享,但是看过相关介绍之后,发现好像通过iCloud并不能解决各应用之间文件共享的问题。但既然看了,所以想要做一个记录,或许以后某个项目会用到。
问题1:iCould有什么用?
实现各设备之间,数据的同步。用户在iPhone上面的数据,在mac上相同应用也可以得到。
问题2:可以在不同应用之间实现数据的交互么?
就目前看到资料,可以。
但是有局限性,实现的最基础前提是,应用都是同一个开发者账户。并且要访问的iCloud空间是同一片空间。
所以,例如你想要访问微信的iCloud空间,不可能
解决方案,查看链接,找到为多个应用程序配置通用iCloud容器相关内容
问题3:同一应用,不同用户之间可以进行数据共享么?
可以实现。
在iCloud中,分为私有库、共享库和公有库。
私有库是和用户的iCloud账户挂钩的,也就是说,私有库的数据,只有同一iCloud账户可以在不同设备之间进行访问。其它的iCloud账户不可访问。
共享库和公有库,不同iCloud账户都可以进行访问,从而实现不同用户之间的数据共享。
问题4:如果用户将自己的iCloud里面的数据删除,应用存进去的数据会删除么?
这个问题,没有验证出来。可能由于缓存问题,一直都没有确定是否会清除。
在官方介绍 用户的iCloud存储空间有限 一段。
猜测API存入的iCloud与用户设备上的iCloud连接的应该是同一片空间。
这个问题的验证,我是通过key-value 这种存入iCloud的方式验证的。个人猜想也与这种方式有一定的关系,详细看Key-Value 中相关的猜想
问题5:写入数据,有哪几种方式?
1.Key-Value :适用于离散值,例如首选项,设置和简单的应用程序状态
2.Documents:文档存储,用于基于用户可见文件的内容,Core Data存储或其他基于文件的复杂内容
3.CloudKit:用于将数据作为单个记录存储在私人或公共数据库中,可供所有应用程序用户访问。
具体介绍,这篇文章最后有相关比较 -->地址
关于三种方式,也做了一些简单的实践:
学习笔记:Key-Value
学习笔记:Documents
学习笔记:CloudKit
最后,看一个东西,可以实现各应用之间文件的共享,微信文件发送用到的技术 ---> Files