【问题标题】:Is there a way to completely disconnect an App from iCloud?有没有办法完全断开应用程序与 iCloud 的连接?
【发布时间】:2012-07-20 12:25:17
【问题描述】:

我的应用可以在有或没有 iCloud 支持的情况下工作。

如果用户将设备连接到 iCloud,然后想要断开连接,我很容易将所有数据复制回本地沙箱并停止使用 iCloud,并且该设备不会再为 iCloud 贡献任何新内容。但是,来自其他设备的更改仍会在此设备上接收(尽管未处理)。

有没有办法完全断开设备与 iCloud 的连接,这样就不会收到新的更改?

【问题讨论】:

    标签: iphone ios xcode ipad icloud


    【解决方案1】:

    您可以简单地停止响应您的应用收到的 NSNotifications。您可以从这些通知中取消注册您的视图,或者在收到它们时忽略它们。

    【讨论】:

    • 谢谢。我知道。但我相信,如果有人想断开与 iCloud 的连接,原因可能是为了释放设备上的一些空间和/或减少网络活动。您的建议(以及我现在正在做的事情)会增加空间使用量(因为文件在沙箱和 iCloud 文件夹中是重复的)并且网络活动仍然会发生,即使它更小(仅一种方式) .我正在寻找的是一种将设备与 iCloud 完全断开连接的方法,以便释放 iCloud 文件夹,并且不会继续从 iCloud 中输入任何内容。
    【解决方案2】:

    iCloud 将数据存储在名为“Mobile Documents”的文件夹中。您应用的容器位于此文件夹中。 iOS 设备会立即了解新文件和更改。但是,在应用程序特别请求之前,他们不会真正下载文件。这是一个示例场景:

    有人在他们的 iPhone 和 iPad 上运行您的应用。他们在两者上都使用 iCloud。但是,在他们的 iPhone 上,他们禁用了您的应用程序的 iCloud,但保持他们的 iCloud 帐户处于活动状态。这意味着他们的设备总是知道变化。但是由于您的应用从不请求这些文档,因此它们永远不会下载到设备上,因此不会占用空间。此外,iOS 会在必要时自动删除 iCloud 文件的本地副本以释放空间。

    有关更多信息,请参阅 developer.apple.com/icloud,特别是有关如何使用 iCloud 的视频。

    【讨论】:

    • 谢谢,但是“他们的设备总是知道变化”意味着仍然有一些网络流量和设备上占用一些空间,即使没有加载文档(Core Data 日志文件会发生什么?应用程序是否仍然获得关于它们的元数据?)我正在寻找的是一种在设备上完全断开应用程序与 iCloud 的连接,这样设备上就没有网络流量和空间(换句话说,移动文档下没有此应用程序的子文件夹)。这可能吗?
    • 没有。 iCloud 是按设备启用或禁用的,而不是按应用程序。完全停止同步流量的唯一方法是让用户删除他们的 iCloud 帐户(或禁用文档和数据)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 2017-09-19
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    相关资源
    最近更新 更多