iOS开发——数据持久化&使用NSUserDefaults来进行本地数据存储
使用NSUserDefaults来进行本地数据存储
class func get_uuid() -> String{ var userid = NSUserDefaults.standardUserDefaults().stringForKey("hangge") if(userid != nil){ return userid! }else{ var uuid_ref = CFUUIDCreate(nil) var uuid_string_ref = CFUUIDCreateString(nil , uuid_ref) var uuid:String = NSString(format: uuid_string_ref) NSUserDefaults.standardUserDefaults().setObject(uuid, forKey: "hangge") return uuid } }
2,对原生数据类型的储存和读取
var userDefault = NSUserDefaults.standardUserDefaults() //AnyObject userDefault.setObject("hangge.com", forKey: "Object") var objectValue:AnyObject? = userDefault.objectForKey("Object") //Int类型 userDefault.setInteger(, forKey: "Int") var intValue = userDefault.integerForKey("Int") //Float类型 userDefault.setFloat(3.2, forKey: "Float") var floatValue = userDefault.floatForKey("Float") //Double类型 userDefault.setDouble(5.2240, forKey: "Double") var doubleValue = userDefault.doubleForKey("Double") //Bool类型 userDefault.setBool(true, forKey: "Bool") var boolValue = userDefault.boolForKey("Bool") //NSURL类型 userDefault.setURL(NSURL(string:"http://hangge.com")!, forKey: "NSURL") var urlValue = userDefault.URLForKey("NSURL") //NSString类型 userDefault.setObject("hangge.com", forKey: "NSString") var nsStringValue = userDefault.objectForKey("NSString") as! NSString //NSNumber类型 var number:NSNumber = NSNumber() userDefault.setObject(number, forKey: "NSNumber") number = userDefault.objectForKey("NSNumber") as! NSNumber //NSArray类型 var array:NSArray = NSArray(array: ["]) userDefault.setObject(array, forKey: "NSArray") //NSDictionaryy类型 var dictionary:NSDictionary = NSDictionary(dictionary: [":"hangge.com"]) userDefault.setObject(dictionary, forKey: "NSDictionary") dictionary = userDefault.objectForKey("NSDictionary") as! NSDictionary
3,系统对象的存储与读取
系统对象实现存储,需要通过archivedDataWithRootObject方法转换成NSData为载体,才可以存储。下面以UIImage对象为例:
var userDefault = NSUserDefaults.standardUserDefaults() //UIImage对象存储 //将对象转换成NSData流 var image = UIImage(named: "apple.png") var imageData:NSData = NSKeyedArchiver.archivedDataWithRootObject(image!) //存储NSData对象 userDefault.setObject(imageData, forKey: "imageData") //UIImage对象读取 //获取NSData var objData:NSData = userDefault.objectForKey("imageData") as! NSData //还原对象 var myImage = NSKeyedUnarchiver.unarchiveObjectWithData(objData) as! UIImage println(myImage)
4,自定义对象的存储和读取
如果想要存储自己定义的类,首先需要对该类实现NSCoding协议来进行归档和反归档。即该类内添加func encodeWithCoder(_encoder:NSCoder)方法和init(coder decoder:NSCoder)方法,将属性进行转换。
var userDefault = NSUserDefaults.standardUserDefaults() //自定义对象存储 var model = UserInfo(name: ") //实例对象转换成NSData var modelData:NSData = NSKeyedArchiver.archivedDataWithRootObject(model) //存储NSData对象 userDefault.setObject(modelData, forKey: "myModel") //自定义对象读取 var myModelData = userDefault.objectForKey("myModel") as! NSData var myModel = NSKeyedUnarchiver.unarchiveObjectWithData(myModelData) as! UserInfo
iOS开发——数据持久化&使用NSUserDefaults来进行本地数据存储的更多相关文章
- iOS开发UI篇—无限轮播(新闻数据展示)
iOS开发UI篇—无限轮播(新闻数据展示) 一.实现效果 二.实现步骤 1.前期准备 (1)导入数据转模型的第三方框架MJExtension (2)向项目中添加保存有“新闻”数据的pli ...
- ios网络学习------4 UIWebView的加载本地数据的三种方式
ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...
- iOS开发笔记9:NSUserDefaults存储自定义实体对象
NSUserDefaults常常用来本地存储一些简单的数据,例如用户信息等等,NSUserDefaults支持floats.doubles.integers.Booleans.URLs.NSData. ...
- iOS开发网络篇之Web Service和XML数据解析
郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主.捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...
- 【iOS开发-60】案例学习:多组数据的tableView设置、添加右側组索引、多层数据模型设置以及valueForKeyPath
效果: 这里的数据模型有两层:每一组汽车是一层模型,每一组里面的每一行汽车品牌也是一层模型. (1)我们先创建一个WSCars模型. 在WSCars.h中: #import <Foundatio ...
- iOS开发点滴 - 如何通过Segue写代码传递数据从一个ViewController到另一个ViewController(Swift代码)
1. 拖线 按住Control键,用鼠标从源控制器的某个控件开始,拖动到目的控制器 2. 选择弹出类型并设置Segue Identifier 在弹出的对话框中,选择“Selection Segue-& ...
- IOS开发---菜鸟学习之路--(三)-数据解析
第三篇 上一篇我们讲了如何通过NSURL类来获取数据, 这一章我们来讲下对于获取过来的数据如何解析. 好了直接进入正文吧. 正文: 上一篇讲了 我们获取过来的数据格式是JSON格式的 大家可以搜下对应 ...
- Swift - 使用NSUserDefaults来进行本地数据存储
NSUserDefaults适合存储轻量级的本地客户端数据,比如记住密码功能,要保存一个系统的用户名.密码.使用NSUserDefaults是首选.下次再登陆的时候就可以直接从NSUserDefaul ...
- iOS数据持久化存储:归档
在平时的iOS开发中,我们经常用到的数据持久化存储方式大概主要有:NSUserDefaults(plist),文件,数据库,归档..前三种比较经常用到,第四种归档我个人感觉用的还是比较少的,恰恰因为用 ...
随机推荐
- ural 1297(后缀数组+RMQ)
题意:就是让你求一个字符串中的最长回文,如果有多个长度相等的最长回文,那就输出第一个最长回文. 思路:这是后缀数组的一种常见的应用,首先把原始字符串倒转过来,然后接在原始字符串的后面,中间用一个不可能 ...
- java jvm学习笔记十三(jvm基本结构)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完 ...
- CABasicAnimation(CAKeyframeAnimation)keypath 取值
- keyPath可以使用的key - #define angle2Radian(angle) ((angle)/180.0*M_PI) - transform.rotation.x 围绕x轴翻转 参 ...
- 【JSONCpp】简介及demo
一.JSON简介 JSON 一种轻量级的数据交换格式,易于阅读.编写.解析,全称为JavsScript ObjectNotation. JSON由两种基本结构组成 ① 名字/值 对的集合,可以理解 ...
- iOS数据存储之对象归档
iOS数据存储之对象归档 对象归档 对象归档是iOS中数据持久化的一种方式. 归档是指另一种形式的序列化,但它是任何对象都可以实现的更常规的类型.使用对模型对象进行归档的技术可以轻松将复杂的对象写入文 ...
- CentOS7 mariadb 修改编码
CentOS7 mariadb 编码的修改: 网上看了不少的解决方案,要么是比较老的,要么是不正确,测试成功的方式,记录备查. 登录MySQL,使用SHOW VARIABLES LIKE 'chara ...
- quick-x在windows平台打包加密文件
D:\quick-cocos2d-x-2.2.1-rc\bin>compile_scripts -i ..\mygames\myth\scripts -o ..\mygames\myth\res ...
- PLSQL 连接Oracle11g (64位)
1.用plsql连不上oracle 11g(64位),先去下载一个oracle 11g(32位客户端) http://www.oracle.com/technetwork/database/featu ...
- ESXi 与其它虚拟化底层产品之比较:
序号 虚拟化管理程序属性 VMware ESXi 5.0 采用 Hyper-V 的 Windows Server 2008 R2 SP1 Citrix XenServer 5.6 FP1 1 磁盘占 ...
- nodejs + socket.io + redis 新手上路
最近要更新网站架构了,决定转入 nodejs + socket.io + redis 方式. 战斗刚开始: 网上的文章太松散,我根据各个网友的分享进行整理 ,让大家可以方便上手. 进入node.js之 ...