正在存储iCloud容器URL



我可以存储从返回的NSURL吗

[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]

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

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

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

我在自己的设备上尝试过,效果很好,我只是想知道在"野外"做这件事是否有任何问题。

Ta

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

唯一的主要问题是,用户可能会在你的应用程序未运行时注销iCloud,或者更糟的是,注销iCloud,然后登录到另一个iCloud帐户。如果保存此URL,请确保还保存ubiquityIdentityToken的值(您可以在不阻塞的情况下查找),并在应用程序启动时检查其值是否已更改。还要监听NSUbiquityIdentityDidChangeNotification,如果它已经发布,请再次查找URL并保存新值。

最新更新