是否可以使用NSUserDefaults代替数据库?

时间:2015-08-07 05:07:16

标签: ios iphone database nsuserdefaults storing-data

我是iOS的新手,所以如果我问的是每个人都知道的东西或者错误的东西,请饶我。

我需要在我的应用中保存一些数组和链接。所以我使用NSUserDefaults而不是数据库。我知道NSUserDefaults保留值,直到我们卸载应用程序或以某种方式清除应用程序数据。所以我只需要知道,可以使用NSUserDefaults而不是使用数据库吗?

5 个答案:

答案 0 :(得分:13)

当我存储数据时:

  1. 用户偏好设置数据:设置,帐户... - NSUserDefaults
  2. 安全数据:密码 - KeyChain
  3. 少量不需要复杂查询的数据 - Plist,Archiver
  4. 需要结构化查询的大量数据 - Coredata / SQLite(FMDB)

答案 1 :(得分:1)

NSUserDefaults通常用于存储小块数据,例如应用程序设置,偏好设置和个别值,例如“电子邮件”,“记住我”等。选项等。

因此,根据您计划存储在应用中的数据量,如果项目属于上述类别,则使用NSUserDefaults就完全没问题了。但是,当涉及到诸如项目集合,检查列表,联系人等大量数据之类的信息时,最好还是查看将其保存在数据库中的其他方法。

对于初学者,如果要使用数据库方法,可以查看这些Github库以帮助您。 FMDBOLCOrm

希望这能回答你的问题:)

答案 2 :(得分:1)

如果您的数据不重并且您不需要从此NSUserDefaults获取查询可以帮助您,但除了使用数据库之外,保存数据的更好解决方案是文件。

答案 3 :(得分:1)

如果您的阵列数量很少,那么您可以使用NSUserDefaults。否则你可以使用属性列表。检查这个链接。这将有所帮助。

Updating and saving data in plist

答案 4 :(得分:0)

如果你想稍后使用像adding, deleting or updating数据这样的数据库的操作,那么它建议使用像CoreData Or Sqlite这样的数据库库。否则,如果你的数据不是那么大而且它主要是静态的那么它就是完全没问题NSUserDefaults