Jas*_*Bel 8 objective-c key-value-store ios icloud
我的应用程序使用iCloud(键值存储)来同步多个设备之间的唯一ID.在第一次启动应用程序时,这项工作接受了它真的必须工作.看起来设备在首次启动时还不熟悉iCloud的值,只有在安装了应用程序并且已运行一段时间之后.
我在应用程序主视图的viewDidLoad函数中检查iCloud值.
所以,我的问题:
谢谢!
碧玉
小智 8
我曾在NSUbiquitousKeyValueStoreDidChangeExternallyNotification不触发第一个发射后安装,不管多久,我等了类似的问题.在NSUBiquitousKeyValueStore中设置初始密钥似乎解决了这个问题.
将观察者添加到默认存储后,我立即调用:
[[NSUbiquitousKeyValueStore defaultStore] setString:@"testValue" forKey:@"testKey"];
[[NSUbiquitousKeyValueStore defaultStore] synchronize];
Run Code Online (Sandbox Code Playgroud)
我使用不同的键(即不是testKey)来表示我想要同步的实际数据.
当您第一次运行支持 iCloud 的应用程序时,它必须从 Apple 服务器提取所有数据。执行此操作所需的时间取决于许多因素,例如您当前使用的网络类型(Edge、3G、GPRS、WLAN)。它还取决于 iCloud 服务器当前必须处理的流量有多少,因此无论您拥有哪种类型的网络连接,对 iCloud 服务器的请求都可能需要几秒钟的时间。
总结一下:是的,这听起来绝对正常。
如果运行您的应用程序取决于这些设置,请考虑实施“等待”或“加载”视图,只要应用程序执行初始同步并从云加载所有需要的数据,该视图就会保留在屏幕上。为了不永远阻止 UI,还可以为此视图实现超时(如果 iCloud 数据未在 X 秒内加载,则关闭视图并通知用户)。
| 归档时间: |
|
| 查看次数: |
2481 次 |
| 最近记录: |