当我们使用 核心数据 ,用户默认值,钥匙串



iOS有多个本地数据库,如CoreData,Keychain,UserDefault。所有 3 个数据库都做同样的事情,保存、更新、选择等。它们之间有什么不同,比如安全性、内存或速度?当使用(CoreData,UserDefaults,Keychains)比其他人更强大时?

不是全部,但简而言之

  • 用户默认值 :用于保存设置数据。它不能用于跨视图控制器的临时数据。它是最快的,因为它是plist文件或字典,当涉及到应用程序的运行状态时

  • CoreData:是一个用于大数据存储的关系数据库,从简单的UI自动创建模型,它是一个基于sqlite的

  • 钥匙串 :是最安全的,始终用于令牌,密码等敏感数据。但它也是最慢的,因为它是一个 c 包装器。

NSCoding/NSKeyedArchiver vs. Core Data 不能直接回答您的问题。但这非常有帮助。长话短说:核心数据是脖子上的痛苦,但在建模、查询、遍历和持久化复杂对象图时,核心数据是无可替代的。核心数据是一把大锤子,但并不是每个问题都是钉子,更不用说足够大的钉子了。

钥匙串更像是一个保险库。您将少量的有限信息存储在其中,例如密码。您不会将整个数据库存储在其中。它就像一个看门人"这个用户可以打开应用程序吗?是的?好的,让我们打开我们的数据库并显示核心数据条目..."

用户

默认值类似于用户所在的最后一页。您可以存储单个自定义对象,但不要存储它的大记录。

相关内容

  • 没有找到相关文章

最新更新