我的应用程序可以在有或没有 iCloud 支持的情况下工作。
如果用户将设备连接到 iCloud,然后想断开连接,我很容易将所有数据复制回本地沙箱并停止使用 iCloud,并且该设备将不再为 iCloud 贡献任何新内容。但是,来自其他设备的更改仍将在此设备上接收(尽管未处理)。
有没有办法完全断开设备与 iCloud 的连接,这样就不会收到新的更改?
iCloud 将数据存储在一个名为“Mobile Documents”的文件夹中。您应用的容器位于此文件夹中。iOS 设备会立即了解新文件和更改。但是,在应用程序特别请求之前,他们不会真正下载文件。这是一个示例场景:
有人正在他们的 iPhone 和 iPad 上运行您的应用程序。他们在两者上都使用 iCloud。但是,在他们的 iPhone 上,他们禁用了您的应用程序的 iCloud,但保持他们的 iCloud 帐户处于活动状态。这意味着他们的设备总是知道变化。但是由于您的应用从不请求这些文档,因此它们永远不会下载到设备上,因此不会占用空间。此外,iOS 会在必要时自动删除 iCloud 文件的本地副本以释放空间。
有关更多信息,请参阅 developer.apple.com/icloud,特别是有关如何使用 iCloud 的视频。
您可以简单地停止响应您的应用收到的 NSNotifications。您可以从这些通知中取消注册您的视图,或者在收到它们时忽略它们。