【问题标题】:Storing iCloud Container URL存储 iCloud 容器 URL
【发布时间】:2013-02-07 10:02:46
【问题描述】:

我可以存储从以下位置返回的 NSURL:

[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]

在 NSUserDefaults(或 plist)中,以便在我的应用启动时更快地访问 iCloud 容器?

目前,上面的代码可能需要几秒钟(有时超过 10 秒)才能返回容器路径。当我的应用等待返回时,这会导致从 iCloud 加载用户数据时出现明显且令人讨厌的延迟。

我假设每次启动应用程序时 NSURL 路径都完全相同,因此应该可以将其存储起来以便以后快速访问。

我已经在自己的设备上尝试过,效果很好,我只是想知道在“狂野”中执行此操作是否有任何问题。

【问题讨论】:

    标签: icloud nsfilemanager


    【解决方案1】:

    可能会起作用。但它不能解决问题,它只是移动它。该方法像它一样阻塞,因为它在内部为您的应用程序启动并运行 iCloud(这可能涉及网络调用)。这迟早会发生,因为它是您的应用程序的 iCloud 设置过程的一部分。你可能会避免那个电话,但你会在其他地方遇到延迟。

    唯一的主要问题是用户可能会在您的应用未运行时退出 iCloud,或者更糟糕的是,用户可能会退出 iCloud 并登录到不同的 iCloud 帐户。如果您保存此 URL,请确保您还保存了 ubiquityIdentityToken 的值(您可以在没有阻塞的情况下查找),并检查其值是否在应用程序启动时发生了变化。还要收听NSUbiquityIdentityDidChangeNotification,如果它曾经发布过,请再次查找 URL 并保存新值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-27
      • 2021-03-18
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      • 1970-01-01
      相关资源
      最近更新 更多