首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSUbiquitousKeyValueStore对NSUserDefaults

NSUbiquitousKeyValueStore对NSUserDefaults
EN

Stack Overflow用户
提问于 2017-04-25 20:41:43
回答 2查看 2K关注 0票数 9

来自苹果的NSUbiquitousKeyValueStore文档

如果在用户未被签名到iCloud帐户时写入键值存储对象,数据将在本地存储,直到下一次同步机会。当用户登录到iCloud帐户时,系统会自动调节本地、磁盘上的密钥和值与iCloud服务器上的键和值。

因此,如果用户从未登录到iCloud帐户,则键值存储对象将在本地无限期地存储,就像NSUserDefaults一样。

在这种情况下,我们是否应该停止使用NSUserDefaults,而只使用NSUbiquitousKeyValueStore作为所有应用程序的“默认”?这种方法的缺点是什么?

我能看到的一个优势是,从用户的角度来看,应用程序的首选项将在他们的所有设备之间同步,这很可能是一个更好的用户体验!

EN

回答 2

Stack Overflow用户

发布于 2017-04-25 20:47:55

我们应该清楚地理解,NSUbiquitousKeyValueStore在iCloud中用于在特定帐户的所有设备上配置和跟踪应用程序状态。

关于NSUbiquitousKeyValueStore的一些事实。

在文件中我们可以发现:

当应用程序脱机时,避免将该类用于对应用程序行为至关重要的数据;相反,将此类数据直接存储到本地用户默认数据库中。

另外,可以保存的数据的大小也相对较小。

对于给定的用户,应用程序的键值存储中可用的空间总数为1MB。每个键的值大小限制为1MB,最多为1024个键.

票数 5
EN

Stack Overflow用户

发布于 2018-05-09 00:55:17

我已经发现,如果用户进入他们的iCloud设置,并关闭您的应用程序开关-您将无法再保存到NSUbiquitousKeyValueStore。

您的应用程序将从启用它开始。然后你可以在那里保存数据。一旦iCloud被关闭,它将始终是可读的--但是如果您更新数据并重新启动应用程序,我相信您将看到它恢复到用户在iCloud设置中关闭iCloud支持之前的状态。

这是我目前正在处理的一个问题。我试图找到一种方法来测试开关是否开/关,并将我的数据存储更改为NSUserDefaults。

如果我错了,请纠正我,但这是我到目前为止所发现的。

-mark

编辑:只有当您注册了iCloud文档时,才会这样做。如果您只使用NSUbiquitousKeyValueStore,那么它实际上应该是相同的--我相信。

编辑-编辑:现在它的作用不同了。当只有NSUbiquitousKeyValueStore在iCloud功能中签入时,开关就在那里了。因此,再次寻找一种方法,以检测该开关是否是翻转的应用程序在iCloud设置。

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

https://stackoverflow.com/questions/43620573

复制
相关文章

相似问题

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