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

来源:互联网 发布:java神经网络 编辑:程序博客网 时间:2024/06/01 11:07

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   //关于偏好设置

 

0 0