NSUserDefaults
是IOS系统的一种轻量级的数据存储方式,用来存储用户设置信息、登陆名、密码之类的信息,所存储的数据保存在App的沙盒目录内,
NSUserDefaults
可以存储基本数据类型(Int、Float、Double、Bool、
NSString、NSArray、NSDictionary、NSURL、NSNumber、NSData
)和系统数据类型(UIImage、UIColor等等),下面以代码示意:
1.将数据储存到NSUserDefauls
/*
*
* 操作基础数据类型
*/
func saveDatainNSUserDefaults() {
//获取NSUserDefaults对象
self.defaults = NSUserDefaults.standardUserDefaults()
//Int
defaults!.setInteger(18818786876, forKey: "Type_Integer")
//Float
defaults!.setFloat(13.99, forKey: "Type_Float")
//Double
defaults!.setDouble(13.89899, forKey: "Type_Double")
//Bool
defaults!.setBool(false, forKey: "Type_Bool")
//NSString
defaults!.setObject("Swift Language", forKey: "Type_NSString")
//NSURL
defaults!.setURL(NSURL(string:"http://blog.csdn.net/luohancc")!, forKey: "NSURL")
//NSNumber
defaults!.setObject(NSNumber(int: 100), forKey: "Type_NSNumber")
//NSArray
defaults!.setObject(NSArray(array: ["Luohan", "CSDN"]), forKey: "Type_NSArray")
//NSDictionary
defaults!.setObject(NSDictionary(dictionary: ["NO.1":103]), forKey: "Type_NSDictionary")
//NSData(UIColor、UIImage...)
let bgColor = UIColor(red: 0.3, green: 0.7, blue: 0.4, alpha: 1)
let data:NSData = NSKeyedArchiver.archivedDataWithRootObject(bgColor)
defaults!.setObject(data, forKey: "Type_NSData")
}
2.将数据从NSUserDefauls中读取出来,将所有数据类型转换成String显示在视图上
/*
*
* 读取数据
*/
func getData() {
//get Int
let typeInt = defaults!.integerForKey("Type_Integer")
//get Float
let typeFloat = defaults!.floatForKey("Type_Float")
//get Double
let typeDouble = defaults!.doubleForKey("Type_Double")
//get Bool
let typeBool = defaults!.boolForKey("Type_Bool")
//get NSString
let typeNSString = defaults!.stringForKey("Type_NSString")
//get NSURL
let typeNSURL = defaults!.URLForKey("NSURL")
//get NSNumber
let typeNSNumber = defaults!.objectForKey("Type_NSNumber") as! NSNumber
//get NSArray
let typeNSArray = defaults!.objectForKey("Type_NSArray") as! NSArray
//get NSDictionary
let typeNSDictionary = defaults!.objectForKey("Type_NSDictionary") as! NSDictionary
//get NSData
let typeNSData = defaults!.objectForKey("Type_NSData") as! NSData
//get NSColor
let color:UIColor = NSKeyedUnarchiver.unarchiveObjectWithData(typeNSData) as! UIColor
//其他类型如何转换为String
label_Int.text! += String(typeInt)
label_Float.text! += String(stringInterpolationSegment: typeFloat)
label_Double.text! += String(stringInterpolationSegment: typeDouble)
label_Bool.text! += String(stringInterpolationSegment: typeBool.hashValue)
label_NSString.text! += typeNSString!
label_NSURL.text! += String(stringInterpolationSegment: typeNSURL!)
label_NSNumber.text! += String(stringInterpolationSegment: typeNSNumber.intValue)
label_NSArray.text! += (typeNSArray.objectAtIndex(0) as! String)
label_NSDictionary.text! += ((String)(typeNSDictionary.objectForKey("NO.1")! as! Int))
label_NSData.text! += "见背景色"
self.theView.backgroundColor = color
}
3.效果图