首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何同时使用NSUbiquitousKeyValueStore和NSUserDefaults

如何同时使用NSUbiquitousKeyValueStore和NSUserDefaults
EN

Stack Overflow用户
提问于 2011-11-10 03:12:46
回答 3查看 6.4K关注 0票数 8

关于如何在边缘情况下使用NSUbiquitousKeyValueStore,文档并不明确。

如果我想设置一个值,我知道我应该同时为NSUserDefaultsNSUbiquitousKeyValueStore设置一个值,因为iCloud可能会被禁用。但是,在我的测试中,即使禁用了iCloud (在Mac上测试),[NSUbiquitousKeyValueStore defaultStore]也会返回一个有效的对象。

另外,据我所知,如果启用了iCloud,NSUbiquitousKeyValueStore的值将存储在磁盘上(并且可以脱机使用)。如果您确定您的数据少于64KB,那么使用NSUserDefaults的原因是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-21 18:25:39

我正在使用http://blog.mugunthkumar.com/coding/ios-code-mkicloudsync-sync-your-nsuserdefaults-to-icloud-with-a-single-line-of-code/

这是一个由Mugunth Kumar编写的简单类(thanx !)为你做这件事...除非您有特殊需求,否则只需添加一行代码,它就可以完成对iCloud的所有读写操作……你所需要做的就是像往常一样读写NSUserDefaults ...

编辑:

小心,如果你从NSUserDefaults中删除一个项目,我上面链接的代码将不会从云中删除该项目。无论何时从NSUSerDefaults中删除项目,请对NSUbiquitousKeyValueStore执行相同的操作:

代码语言:javascript
复制
NSUbiquitousKeyValueStore* keyValueStore=[NSUbiquitousKeyValueStore defaultStore];
[keyValueStore removeObjectForKey: yourKey];
票数 1
EN

Stack Overflow用户

发布于 2012-01-01 03:32:38

如果你想同步你所有的NSUserDefaults,上面提供的Mugunth Kumar答案效果很好!

然而,这是一种要么全有要么全无的方法。您不能选择要同步的默认值。

我找到了这个Tutorial,如果你想要更挑剔的话,它可能会有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2014-01-07 00:17:42

我编写了一个简单的iOS类别,在将值保存到NSUbiquitousKeyValueStore中的同时,还可以使用它将值保存到NSUserDefalt中。

希望这能有所帮助:https://github.com/RiccardoPaolillo/NSUserDefault-iCloud

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8070253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档