首页 文章

用于登录用户数据的核心数据与NSUserDefaults

提问于
浏览
5

我有一个应用程序,我已经使用Core Data来存储大量的商店,用户可以在登录后查看 . 我目前正在实现应用程序的登录部分,我查看了许多相关问题 . 他们中的大多数建议使用 NSUserDefaults 来存储非敏感用户数据 . 我打算存储名字,姓氏,电子邮件, Profiles 图片和地址等内容 . 该名单可能会在未来增长 . 我的问题是在我的核心数据模型中创建用户 entity 以便存储单个用户对象的有效选项,或者这将是一个不好的做法,我应该用 NSUserDefaults 来做它?我很想使用Core Data,因为我已经设置了所有内容,并且不会给实现增加额外的复杂性 .

3 回答

  • 4

    在开发最近的应用程序时,我处于非常类似的情况 . 我发现 NSUserDefaults 是一个更适合存储用户信息的解决方案,因为's what it'明确意味着用于 . 正如Apple documentation上所说,'The NSUserDefaults class provides a programmatic interface for interacting with the defaults system. The defaults system allows an application to customize its behavior to match a user’s preferences.'

    根据我的经验,使用NSUserDefaults来存储用户信息而不是Core Data意味着拥有更少的代码 . 此外,每次用户登录应用程序时,您都不必拥有访问Core Data存储的开销 .

    作为参考,我在学习使用NSUserDefaults的地方时使用了thisthis .

  • 3

    我做了两件事,但对我来说,将我的用户存储在CoreData中并将我的用户ID保存在 NSUserDefault 中是更好的解决方案 . 我这样做是因为我使用MantleOvercoat来解析服务器响应,我的用户与应用程序中的任何其他用户具有完全相同的结构 .

  • 0

    如果你打算当时只有一个用户,我会选择NSUserDefault . 在我们的某个应用中,我们需要能够管理同时运行的多个用户帐户 . 我们使用UserId作为名称标识符为每个用户构建了一个不同的数据库 . 让我们记住每个用户的应用程序状态所以我认为答案将取决于场景 . 请记住不要在userDefault上保存有 Value 的信息 . 如果保存在应用程序密钥环上,可能会更好,如电子邮件,用户名等 . 有一些pod使得从密钥环中保存和检索就像访问字典一样简单 .

    祝好运 .

相关问题