美文网首页iOS开发SwiftSwiftSwift开发
IOS(swift)-数据存储 · 用NSUserDefault

IOS(swift)-数据存储 · 用NSUserDefault

作者: 俊瑶先森 | 来源:发表于2015-01-12 21:39 被阅读11962次

    1.用NSUserDefaults存储配置信息

    注:本次使用NSUserDefaults存储信息是在不考虑安全问题的前提下。
    分两种情况:
    1.如果是密码用户名等敏感信息,请使用Keychain存储用户敏感信息,我将在后面写一篇用Keychain存储用户敏感信息
    2.如果是设置 记住密码、第一次打开应用引导App,或者一般APP的设置,那么,可使用NSUserDefaults

    一般情况下使用方法,最常见的有两种:

    1.首次登陆,APP引导介绍页
    APP引导动画.jpg

    用户在首次打开APP的时候,使用NSUserDefaults判断用户是否有配置存储信息,一般会申明一个 isFirstLaunch,判断是否为第一次启动。如果是第一次启动,则先出现一个引导页面。

    2、记住用户信息
    记住密码.png

    我们这里以第二种讲解:
    比如这里的

    用户名 ——> nameField
    密码 ——> pwdField
    开关 ——>rembSwich
    登陆按钮 ———>loginBtn

    逻辑为

    点击 1.登陆按钮保存配置信息-2.重新登陆读取配置信息。

    1.登陆按钮保存配置信息

    //全局设置
    let UserNameKey = "name"
    let PwdKey = "pwd"
    let RmbPwdKey = "rmb_pwd"
    let IsFirstLaunch = "ifl"
    
    //设置存储信息
    NSUserDefaults.standardUserDefaults().setObject(self.nameField.text, forKey: "UserNameKey") 
    NSUserDefaults.standardUserDefaults().setObject(self.pwdField.text, forKey: "PwdKey")
    NSUserDefaults.standardUserDefaults().setBool(self.rembSwich.on, forKey: "RmbPwdKey")
    //设置同步
    NSUserDefaults.standardUserDefaults().synchronize()
    

    2.重新登陆读取配置信息:

    //读取上次配置
    self.nameField.text = 
    NSUserDefaults.standardUserDefaults().valueForKey("UserNameKey") as String!
    self.pwdField.text = NSUserDefaults.standardUserDefaults().valueForKey("PwdKey") as String!
    self.rembSwich.on = NSUserDefaults.standardUserDefaults().boolForKey("RmbPwdKey") as Bool!    
    if (self.rembSwich.on){   
    self.pwdField.text = NSUserDefaults.standardUserDefaults().valueForKey("PwdKey") as String!
     }
    
    //判断是否第一次启动:
     if((NSUserDefaults.standardUserDefaults().boolForKey("IsFirstLaunch") as Bool!) == false){
    //第一次启动,播放引导页面
     println("第一次启动")
    //设置为非第一次启动
    NSUserDefaults.standardUserDefaults().setBool(true, forKey: "IsFirstLaunch")
     }else{
     println("不是第一次启动")
     }
    
    
    
    
    打赏专用:

    http://weibo.com/p/1001603800398153516379

    相关文章

      网友评论

      • 4276c32604b1:非常好啊,正需要啊
      • a6e55dcfdda8:这里可以改成initWithSuiteName 根据不同用户单独保存配置信息
      • a6e55dcfdda8:如果A用户登录成功,保存了配置信息,后又切换B用户登录,这样不就出现配置信息混淆了吗?
      • db6c9c1b0b6b:写的很好!

      本文标题:IOS(swift)-数据存储 · 用NSUserDefault

      本文链接:https://www.haomeiwen.com/subject/aspqxttx.html