头条创作挑战赛 起因是当关闭iCloud云盘之后,notability无法正常查看笔记,疑问1:本地不是也会存储吗为什么关闭备份之后还打不开了,一段摸索之后,重新打开iCloud云盘,软件恢复正常,这不由得让我好奇iCloud的同步机制是怎么样的,基于所见情况,产生一下疑问和推测。 出现情况1:notability本地占用缓存和iCloud中大小相近,都是五百多MB,不完全相同 出现情况2:当我在应用中关闭iCloud同步,会提示所有数据都已在iCloud保存,是否删除ipad本地缓存,那我选择保留,这时候内存似乎变成了俩个缓存相加,即1GB多, 推测1:当开启iCloud同步,本质是保证在一个设备修改,在另一个设备也能接收,所以最简单的是完全复制,但是完全复制意味着关闭同步,本地不会受影响,事实证明不是这样的,若参考关闭关闭同步,俩个缓存相加,是否意味着本地在开启iCloud同步时只会保存一部分数据,另一部分由iCloud保存,两者不是完全镜像,存在一定机制节约内存的同时确保能够同步。 但是最简单的问题,即如上面推测一样,存部分真的可以同步吗,由于没有第二台使用同一个appleid的设备测试,此处无法验证。 疑问2: 当关闭iCloud同步时,选择了保存,注意!当时的提示是所有数据都已在iCloud保存,是否删除ipad本地缓存,那么在经过上述修改,包括:1。对已有数据的修改,2。新增数据 系统会如何处理 推测2: 我更倾向于本地,云端之前是各存储一部分,所以这里会进行数据比对,已有没有改变的不动,已有变化的之间新建一个变化前的备份 疑问3: 当我先关闭iCloud同步,在对数据进行修改,内存包括:1。对已有数据的修改,2。新增数据 现在开启同步,系统会如何处理。 推测3: 确定大核心,没有在开启iCloud同步的时候修改,开启后iCloud存储的东西不会变,即不会更新已有的数据,以及同步加上最新的数据,可以通过测试3进行验证 测试3: 确定测试前参数: 关闭iCloud同步,本地notability文稿与数据1。08GB,iCloud中文稿与数据592。4MB, 改变参数: (1)保持关闭iCloud同步状态,直接导入87。21MBpdf,以及在原有数据后面加上这个87。21MBpdf (2)打开iCloud同步,查看内存,数据变化。 (3)关闭iCloud同步,查看内存,数据变化。 测试结果: 1)Notability文稿数据大小变成1。36GB,13610828,这个数据很奇怪,于是我又导入一次87。21,结果是1。45,这次正确了,推测是在原有笔记上新增处理逻辑不同,相比直接导入,增加内存会多一点。但是在我把最后新增的删除,内存不是变成1。38而是1。27???这样看来(1。27108)2又是对的,看来细小的差别不能成为判断机制的标准,这里就不再重复测试,影响不大。 2)先看本地notability文稿与数据457。3MBiCloud中文稿与数据直接和之前本地同步了1。3G所以推测1错误,它就是会直接保持到完全一样,这样不难理解,毕竟初衷就是为了保持各个设备同步。 同时它可能判定差别太大,所以当我同步时,他把所有的都复制一遍进去(可以是因为我对已有数据进行了修改)本地内存很小,我不知道这本地457MB到底是什么,但是这个1。3G,大概率是源加旧,包含大部分的数据冗杂。 这里新加一个测试项目,把两个新增的测试项目删除了,查看内存情况,以及关闭同步后情况。 删除前:本地459。7MB,iCloud1。3G,删除后:本地643。9MB,这是个大发现,由于没有在回收站删除,会把缓存储存在本地以便恢复,此时iCloud1。2G。 我又好奇,把回收站恢复会怎么样,恢复后本地459。8,iCloud1。3G正常,没有多余内存bug。 再正常删除,把回收站也清除了,可以看到iCloud为1。2G,正确删除内存,但是本地为459。7,说明并没有释放内存,这部分数据完完全全储存在iCloud!!!!那么本地的459。7就是和创建笔记无关的东西,有理由推测关闭同步后,会把所有数据,即1。2G全部导入,最后内存来到1。7G吗??? 3)最后一步了,关闭iCloud同步,同样提示是否保留笔记副本,选择保留 查看本地1。7G!!推断完全正确,iCloud不变仍为1。2GB 至此验证结束,总结一下 1。iCloud同步数据是储存在云端的,本地直接不会储存,所以关闭同步时,必须选择把数据保留在ipad上,否则需要重新利用iCloud导入 2。若是关闭iCloud同步进行修改,开启后,计算逻辑相对低级,会选择直接复制一份过来,同时删除本地数据,更新最新的iCloud数据,达到一个最新版(这一切都建立在iCloud内存充足的情况下) 3。最后,若关闭iCloud同步,选择保留数据,会自动把数据从iCloud返回本地。