3

我正在尝试实现具有iCloud Key-value存储功能的应用程序。

目前,我正在iPhone5s使用iOS7.0.4iPhone4 和 iPhone4的两台设备对其进行测试,iOS6.1.1. 你们知道为什么相同的设备iCloud account(从设置 -> iCloud -> 帐户检查)有两个不同的地方ubiquityIdentityToken吗?我想这就是这两个设备之间数据不同步的原因(网络访问)。

而在 iOS6 上,NSUbiquitousKeyValueStoreDidChangeExternallyNotification是不会触发的。

提前致谢!

4

3 回答 3

7

ubiquityIdentityToken仅用于:

  • 确定 iCloud 是否可用于您的应用
  • 确定 iCloud 帐户是否已更改(通过与之前保存的值进行比较)。

它是不透明的,但符合一些协议。您可以将其保存在本地并将当前值与以前的值进行比较,但这就是它的全部好处。不保证在任何其他情况下都有用。

不保证在不同设备上相同,即使这些设备使用相同的 iCloud 帐户。为什么它可能不同没有记录——它可能以某种方式对特定于设备的值进行编码。无论如何,这不是您可以从一台设备转移到另一台设备并期望仍然有用的东西。这不是它的设计工作方式。

于 2014-01-06T19:04:41.983 回答
1

它确实在令牌中编码了特定于设备的值。位置 17 和 22 之间的 8 位十六进制数字组在不同的设备上或使用不同的 iCloud 帐户时会发生变化。

其余组通常保持不变,跨越不同的应用程序、设备或 iCloud 帐户。

于 2016-04-18T10:42:20.407 回答
-1

这是奇怪的行为。在这些情况下,Apple 通常建议在两台设备上注销并再次登录(使用相同的 Apple ID) 。试试看是否有帮助。此外,请确保在每台设备上安装最新版本的应用程序(启用 iCloud)。

于 2014-01-06T08:55:41.400 回答