gpt4 book ai didi

objective-c - 在设置值之前等待现有的 iCloud 值?

转载 作者:可可西里 更新时间:2023-11-01 03:09:38 24 4
gpt4 key购买 nike

在我的应用中,我需要在运行该应用的不同设备之间共享一个设置。我希望安装该应用程序的第一台设备设置设置的主值,然后所有其他设备都应该获得该设置而不是覆盖它。

  1. 如何确保在设置值之前先检查 iCloud 是否有值?所以我不会覆盖现有的。

  2. 我是否应该等待 NSUbiquitousKeyValueStoreInitialSyncChange 事件被发送,然后我可以检查最终的现有值,否则第一次设置它?如果是,我可以依靠接收 NSUbiquitousKeyValueStoreInitialSyncChange 事件吗?如果不是,那么结果可能是它根本没有使用这种方法设置 iCloud 值。

  3. 如果我尝试在第一次触发 NSUbiquitousKeyValueStoreInitialSyncChange 之前设置一个值,它会被丢弃,然后 NSUbiquitousKeyValueStoreInitialSyncChange 将使用存储中的现有数据触发吗?

  4. 我听说如果第一次同步时存储中没有值,则不会触发 NSUbiquitousKeyValueStoreInitialSyncChange?

我已经阅读了关于此的 Apple 文档并在 Stack Overflow 上看到了答案,但不明白如何做到这一点。

如何确保在我第一次启动/安装应用程序时不会覆盖现有值?

最佳答案

您无法肯定地知道您至少与远程存储有效同步过一次,因此您不应该指望它(假设没有设置 iCloud 帐户、没有连接或 iCloud 服务器已关闭等) .: 您不希望您的用户等待您确定您与云同步,因为它可能需要永远甚至永远不会发生)。

你应该做什么:

  • 开始时,检查商店是否有值(value)。
  • 如果没有值(value),就推自己的值(value)。
  • 如果与服务器的初始同步还没有发生,而实际上云中有一个值,这将被 NSUbiquitousKeyValueStore 视为冲突。在这种精确的情况下(初始同步),自动策略是恢复您的本地值并更喜欢云中的值。因此,您的应用程序将通过 NSUbiquitousKeyValueStoreDidChangeExternallyNotification 通知此恢复,原因是 NSUbiquitousKeyValueStoreInitialSyncChange
  • 如果云中实际上没有任何值(value),您的本地值(value)将被插入,每个人都会很高兴。

关于objective-c - 在设置值之前等待现有的 iCloud 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12141209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com