想起之前在本站看到过的一则评论,有些人使用科技产品时不是按照产品的设计逻辑使用,而是按照自己想当然的直觉使用,一通操作后发现结果不如自己的预期时就说是这产品垃圾、产品不好用之类的。 我无意为苹果开脱,但从一个开发者的角度来讲,同步操作对任何开发者来讲都是非常困难的,小到程序里的线程同步、大到不同设备间的数据同步,都是设计时不好设计、用的时候也容易出问题的。 如果用户对同步的风险没有一定的了解,很容易产生“我这样用会产生这样的结果”的想法,实际上很可能你这样用产生不了你想要的结果,甚至产生了你不想要的结果。
周末娃要拿老婆的 iPad 打游戏,老婆发现娃趁机在 ipad 上下载各种 app 刷短视频。于是她就做了如下操作 1. 在设置 icloud 里关掉了 icloud keychain 同步 2. 在 password app 里删除了所有密码。(删除所有密码是防止我们自己的密码泄露给娃。) 3. 删除娃下的 app ,打开下载 app 永远需要密码。 因为孩子在 iPad 上下载各种短视频 app 就要去清空 keychain 我实在不能理解。
摆明了是你自己删的, 按正常操作因该是关闭 keychain 的时候弹出个提示问你要不全删了,不知道你为什么选了保留,然后一个个自己删了之后又开启了 keychain ,于是乎本地的这个删除操作同步上云了。 事情原委就那么简单,别编故事了。 再正常点的操作都是重新开个儿童账户,需要更多限制的话在设置里进一步操作,你给小孩玩你的自己账号就做好出意外的准备。
假设按很多人说的:在“断开同步”、“删除本地”之后,又“打开了同步”,这才导致了同步删除的问题。 那么依然能说明苹果同步的逻辑问题:把非同步时的本地操作同步上了云。 既然用户明确了断开连接,那么这期间的本地操作不应该同步。有矛盾或者涉及重大决策时,应该像 git 那样明显要求用户决定如何解决矛盾。 帮用户做决定而且不明确说明规则是最大的问题