iOS具有多个本地数据库,例如CoreData,Keychain,UserDefault。这3个数据库都执行相同的操作,即保存,更新,选择等。它们之间是否有不同之处,例如安全性,内存或速度?当使用(CoreData,UserDefaults,Keychain)比其他功能更强大时?
答案 0 :(得分:3)
不是全部,但总之
Userdefaults:用于保存设置数据。它不能用于跨viewController的临时数据。当涉及到应用程序的运行状态时,它是最快的plist文件或字典
CoreData:是用于大型数据存储的关系数据库,可以通过简单的UI自动创建模型,并且是基于sqlite的
答案 1 :(得分:1)
NSCoding/NSKeyedArchiver vs. Core Data不能直接回答您的问题。但这很有帮助。长话短说:核心数据令人头疼,但是在建模,查询,遍历和持久化复杂对象图时,没有任何替代核心数据。核心数据是一个很大的锤子,但并非每个问题都是一个钉子,更不用说足够大的钉子了。
KeyChain更像是一个保险库。您在其中存储少量有限的信息,例如密码。您不会在其中存储整个数据库。就像看门人一样:“此用户可以打开应用程序吗?是?好吧,我们打开数据库并显示核心数据条目...”
UserDefaults就像用户访问的最后一页。您可以存储单个自定义对象,但不要存储大量自定义对象。