根据苹果公司的iCloud文档:
每个拥有Apple ID的用户都会收到一个免费的iCloud帐户,但有些用户可能会选择不为给定设备启用iCloud。在尝试使用任何其他iCloud接口之前,必须调用URLForUbiquityContainerIdentifier:方法来确定是否启用了iCloud。启用iCloud时(此指定的容器目录可用),此方法返回有效的URL,或者在禁用iCloud时返回nil。
如果URLForUbiquityContainerIdentifier:返回nil,那么我认为你必须保存到用户的文档目录。如果用户以后启用iCloud,您应该怎么做?文档只告诉你在一切进行计划时该怎么做,但没有提及处理其他任何事情的最佳实践......如果iCloud被禁用,icloud文档的本地副本将被删除,或者删除它的权限怎么办?来自沙箱?
答案 0 :(得分:0)
您应该保存iCloud启用状态(即,您是否能够从URLForUbiquityContainerIdentifier:
获得nonnil结果),注册有关情况变化的通知等。如果您检测到状态已从关闭状态发生变化对,解决方案很简单;致电setUbiquitous:itemAtURL:destinationURL:error:
将您的世界中的文件复制到无处不在的世界(毕竟它只是一个文件夹)。
这种情况很好地涵盖在文档中:
不幸的是,如果您检测到相反的情况(用户已关闭iCloud),文件将丢失并且您无法检索它,因为,假设URLForUbiquityContainerIdentifier:
现在返回nil。但它仍处于云端。我认为你可以提供让用户重新打开iCloud的界面,以及让用户请求将文件移回nonubiquity世界的更多界面。