ios开发学习笔记--数据持久化之偏好设置(NSUserDefault)

Ios数据持久化—NSUserDefault

一、     简介NSUserDefault

NSUserDefualt是用于存储自定义设置,如记住密码,自定义个性化设置,首次使用引导等,适合于简单数据小量储存,涉及记住密码,为了安全性,请可以采用keyChain,偏好数据存储在应用沙盒(以plist文件形式)

注意点:NSUserDefualt支持的数据有Int Float DoubleNSURL NSString、 NSNumber、NSDate、 NSArray、NSDictionary、BOOL、NSInteger、NSFloat等系统定义的数据类型,如果想存自定义对象,首先要将其转化为NSData,才可以储存。

要点: NSUserDefaults非常好用,并不需要用户在程序中设置NSUserDefaults的全局变量,需要在哪里使用NSUserDefaults的数据,应该设置同步,那么就在哪里创建一个NSUserDefaults对象,然后进行读或者写操作

二、     NSUserDufault使用

//数据持久化值NSUserDefault
    func useNSD()->Bool{
        var result:Bool = true
        //偏好设置
        let userName = "userName"
        let password = 188888666
        let remps: Bool = true//记住密码
        let firstLog:Bool = false//非首次登录(如果是首次登录可以产生引导界面)
        //let mytestData = mytest(name1: "小明", age1: 8)
        //使用NSKeyArchive(键控存档->使用根对象存档数据)将对象转化为NSData(待定)
        //let mytest1 = NSKeyedArchiver.archivedDataWithRootObject(mytestData)
        //设置数据到沙盒中
        let userDefault = NSUserDefaults.standardUserDefaults()
        userDefault.setValue(userName, forKey: "userName")
        userDefault.setInteger(password, forKey: "password")
        userDefault.setBool(remps, forKey: "remps")
        userDefault.setBool(firstLog, forKey: "firstLog")
        //设置同步
        userDefault.synchronize()
        //取数据
        if !NSUserDefaults.standardUserDefaults().boolForKey("firstLog"){
            print("用户名:",NSUserDefaults.standardUserDefaults().valueForKey("userName"))
            print("密码为:",NSUserDefaults.standardUserDefaults().integerForKey("password"))

        }

        else {result = false}
        //删除数据
        NSUserDefaults.standardUserDefaults().removeObjectForKey("password")
        print("密码为:",NSUserDefaults.standardUserDefaults().integerForKey("password"))//输出结果 密码为:0
        return result


    }


 

官网文档:NSUserDufaultClass Reference

AboutPreferences and Settings   //关于偏好设置

 

你可能感兴趣的:(ios开发学习笔记--数据持久化之偏好设置(NSUserDefault))