文档不清楚如何使用NSUbiquitousKeyValueStore
与边缘情况。
如果我想设置一个值,我知道我应该为两者都设置一个值NSUserDefaults
and NSUbiquitousKeyValueStore
因为 iCloud 可能被禁用。然而在我的测试中[NSUbiquitousKeyValueStore defaultStore]
即使 iCloud 被禁用,也会返回有效的对象(在 Mac OS 上测试)。
另外,据我了解,如果启用了 iCloud,NSUbiquitousKeyValueStore
的值存储到磁盘(并且可以离线使用)。如果您确定数据少于 64KB,那么使用 NSUserDefaults 的原因是什么?
我在用http://blog.mugunthkumar.com/coding/ios-code-mkicloudsync-sync-your-nsuserdefaults-to-icloud-with-a-single-line-of-code/
这是一个由 Mugunth Kumar 编写的简单类(感谢!),可以为您完成工作...除非您有特殊需求,添加一行代码,它将完成对 iCloud 的所有读取和写入操作...您需要的一切要做的就是像往常一样读取和写入 NSUserDefaults...
Edit:
小心,如果您从 NSUserDefaults 中删除一个项目,我上面链接的代码将不会从云中删除该项目。每当您从 NSUSerDefaults 中删除项目时,请对 NSUbiquitousKeyValueStore 执行相同的操作,如下所示:
NSUbiquitousKeyValueStore* keyValueStore=[NSUbiquitousKeyValueStore defaultStore];
[keyValueStore removeObjectForKey: yourKey];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)