当我尝试在iCloud上存储数据时:
// Update data on the iCloud
[ iCloudStore setData:iCloudData forKey:@"TheKey" ];
[ iCloudStore synchronize ];
当我验证iPhone上的内容时,数据已成功更改。
然后,当我在iPad上启动应用程序时:
当我尝试读取这样的值时:
NSData * iCloudData = [ [ NSUbiquitousKeyValueStore defaultStore ] dataForKey:@"TheKey" ];
数据不是我以前用iPhone保存的数据! iCloud包含我的数据的旧版本。
所以,我决定从我的iPad中删除iCloud数据:
[ [ NSUbiquitousKeyValueStore defaultStore ] setObject:[NSData data] forKey:@"TheKey" ];
[ [ NSUbiquitousKeyValueStore defaultStore ] synchronize ];
[ [ NSUbiquitousKeyValueStore defaultStore ] removeObjectForKey:@"TheKey" ];
[ [ NSUbiquitousKeyValueStore defaultStore ] synchronize ];
之后,iCloud似乎是空的(上次同步后iCloud数据为零)。
但是在我的iPad上重新启动应用程序后,iCloud仍然包含一个非常旧版本的数据。
而iCloud在启动时通知我的iPhone包含密钥@“TheKey”的良好值。
我的应用程序是通用的,因此iCloud的参数在两个设备上都是相同的。
我将用户的二进制加密数据存储在该密钥上。这些数据用于同步所有用户设备。
我不想使用iCloud Drive保存文件,因为我不想让用户通过使用其他应用程序或访问www.iCloud.com来访问此文件
在我的所有设备上,我使用相同的iCloud帐户。
非常感谢你的帮助。