保存用户配置文件和持久性

Posted

技术标签:

【中文标题】保存用户配置文件和持久性【英文标题】:Saving user profil and persistency 【发布时间】:2015-02-11 21:06:26 【问题描述】:

我想知道一种在身份验证后保存用户配置文件的简单而好方法。

我请求一个 http 请求,该请求将获取姓名、姓氏、邮件及其个人资料图片的用户。

姓名/用户名/邮件保存在哪里? NSUserDefault ?不,因为我希望如果 NSUserDefault 信息丢失,我可以在不强制 http 请求的情况下获取用户配置文件。所以我考虑过使用存档?但是图像呢?我们使用 UIImagePNG.. 方法将其转换为 NSData ?

所以,如果可能的话,我想要一些关于我想做什么的建议

谢谢!

【问题讨论】:

【参考方案1】:

我认为 NSUserDefaults 是一个可行的选择。只有当用户卸载应用程序时,数据才会丢失。即使在更新后,所有数据仍可访问。当用户卸载应用程序时,所有数据无论如何都会丢失,您对此无能为力。

下面的示例实现(带有 getter 和 setter 函数):

// setter
    func setLoggedIn()
        userDefaults.setValue(1, forKey: "loggedIn")
        userDefaults.synchronize()
    

// getter
    func isLoggedIn() -> Bool
        if let loggedIn: AnyObject = userDefaults.valueForKey("loggedIn")
            return true
        
        else
            return false
        
    

或者用于存储例如用户的名字:

// setter
    func setUserFirstName(val:String)
        userDefaults.setValue(val, forKey: "userFirstName")
        userDefaults.synchronize()
    

// getter
    func getUserFirstName() -> AnyObject
        if let val: AnyObject = userDefaults.valueForKey("userFirstName")
            return val
        
        else
            return ""
        
    

希望这会有所帮助!

【讨论】:

【参考方案2】:

您可以很容易地使用 plist,然后归档到文档目录。

此链接上有一个很好的教程,应该会有所帮助 plist tutorial

【讨论】:

以上是关于保存用户配置文件和持久性的主要内容,如果未能解决你的问题,请参考以下文章

Docker容器怎样更改容器内应用程序的配置文件

在windows xp中,注册用户配置文件保存在哪里?

12自学——Linux的学习进度与任务bash的配置文件

JavaFX - 如何保存用户设置/配置?

保存/加载用户首选项配置文件

以编程方式创建时未保存 Sitecore 用户配置文件设置