ios中NSUserDefaults的使用方法
ios中NSUserDefaults的使用方法
NSUserDefaults类提供了一个与默认系统进行交互的编程接口。NSUserDefaults对象是用来保存。恢复应用程序相关的偏好设置,配置数据等等。
默认系统同意应用程序自己定义它的行为去迎合用户的喜好。你能够在程序执行的时候从用户默认的数据库中读取程序的设置。同一时候NSUserDefaults的缓存避免了在每次读取数据时候都打开用户默认数据库的操作。
能够通过调用synchronize方法来使内存中的缓存与用户默认系统进行同步。
NSUserDefaults类提供了很方便的方法来获取经常使用的类型,比如floats,doubles,intergers,Booleans,URLs。
所以一个NSUserDefaults的对象必须是属性表。这也就是说我们能够存储NSData,NSString,NSNUmber,NSDate,NSArray,NSDictionary这些实例。假设你想存储其它类型的对象。你要将其归档并创建一个NSData来实现存储。
从NSUserDefaults返回的值是不可改变的,即便是你在存储的时候使用的是可变的值。比如你使用mutable string做为“MyStringDefault”的值。当你做使用stringForKey:方法获取的值。这个值仍然是不可变的。
NSUserDefaults是单例。同一时候也是线程安全的
在使用NSUserDefaults的时候。
先看下以下的代码
NSDictionary* defaults = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
NSLog(@"Defaults: %@", defaults);
是用来获取设备上的全部的NSUserDefaults的设置。
NSUserDefaults适合存储轻量级的本地数据,比方要保存一个登陆界面的数据,username、password之类的。个人认为使用NSUserDefaults是首选。下次再登陆的时候就能够直接从NSUserDefaults里面读取上次登陆的信息咯。
由于假设使用自己建立的plist文件什么的。还得自己显示创建文件。读取文件,非常麻烦。而是用NSUserDefaults则不用管这些东西。就像读字符串一样。直接读取就能够了。
NSUserDefaults非常方便,读取也非常easy。
创建一个user defaults方法有多个,最简单得高速创建方法:
- NSUserDefaults *accountDefaults = [NSUserDefaults standardUserDefaults];
加入数据到 user defaults:
- [accountDefaults setObject:nameField.text forKey:UserDefaultNameKey];
也能够加入基本数据类型int, float, bool等。有对应得方法
- [accountDefaults setBool:YES forKey:UserDefaultBoolKey];
从user defaults中获取数据:
- [accountDefaults objectForKey:NCUserDefaultNameKey]
- [accountDefaults boolForKey: UserDefaultBoolKey];
要点:
NSUserDefaults很好用,并不须要用户在程序中设置NSUserDefaults的全局变量。须要在哪里使用NSUserDefaults的数据。那么就在哪里创建一个NSUserDefaults对象,然后进行读或者写操作。
针对同一个keyword相应的对象或者数据,能够对它进行重写,重写之后keyword就相应新的对象或者数据。旧的对象或者数据会被自己主动清理。
ios中NSUserDefaults的使用方法的更多相关文章
- iOS中产生随机数的方法
利用arc4random_uniform()产生随机数 Objective-C 中有个arc4random()函数用来生成随机数且不需要种子,但是这个函数生成的随机数范围比较大,需要用取模的算法对随机 ...
- iOS中NSUserDefaults详解
NSUserDefault 作为iOS中一种轻量级数据本地化方式,简单易用,经常用于存储一些应用相关属性记录,例如图书app的背景色,进度,上次阅读的书籍及相关配置信息.NSUserDefault实质 ...
- iOS中数组遍历的方法及比较
数组遍历是编码中很常见的一种需求,我们来扒一拔iOS里面都有什么样的方法来实现,有什么特点. 因为ios是兼容C语言的,所以c语言里面的最最常见的for循环遍历是没有问题的. 本文中用的数组是获取的系 ...
- iOS中数组遍历的方法及比較
数组遍历是编码中非经常见的一种需求.我们来扒一拔iOS里面都有什么样的方法来实现,有什么特点. 由于iOS是兼容C语言的.所以C语言里面的最最常见的for循环遍历是没有问题的. 本文中用的数组是获取的 ...
- IOS中NSUserDefaults的用法(轻量级本地数据存储)
NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults是首选.下次再登陆的时候就可以直接从NSUserDefa ...
- 关于时间排序在ios中失效的处理方法
上个月公司做项目的时候在列表排序的时候产品加了一个需求,通过点击量,发布时间,评论量进行筛选的一个需求. 一开始在电脑上测试基本没问题,然后我也就放下了这个按耐不住的小心脏,然后在完成所有模块后 sh ...
- IOS中NSUserDefaults的用法
NSUserDefaults适合存储轻量级本地数据,比如要保存用户登陆的用户名.密码,使用NSUserDefaults是首选.下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的 ...
- iOS中 三种随机数方法详解
ios 有如下三种随机数方法: //第一种 srand((unsigned)time(0)); //不加这句每次产生的随机数不变 int i = rand() % 5; //第二种 srandom(t ...
- ios中怎么样设置drawRect方法中绘图的位置
其中drawRect方法中的参数rect就是用来设置位置的,
随机推荐
- [SharePoint][SharePoint Designer 入门经典]Chapter10 Web部件链接
本章概要: 1.Web部件作用 2.如何添加和配置 3.如何个性化 4.如何导出,并在其他站点重利用 5.通过组合web part创建复杂的用户界面
- thrift java示例
thrift java示例 使用IntelliJ IDEA作为开发工具: 增加proto文件夹,里面写上sayHello.proto syntax = "proto3"; opti ...
- 去哪网实习总结:如何配置数据库连接(JavaWeb)
本来是以做数据挖掘的目的进去哪网的,结构却成了系统开发.. . 只是还是比較认真的做了三个月,老师非常认同我的工作态度和成果. .. 实习立即就要结束了.总结一下几点之前没有注意过的变成习惯和问题,分 ...
- mysql改动用户password
登录root用户 用root用户登录控制台. use mysql use mysql,mysql是mysql数据库自己主动创建的一个数据库. 改动user表的数据 update user set pa ...
- python爬虫系列:Scrapy安装与使用
这篇博文主要写Scrapy框架的安装与使用 Scrapy框架安装 命令行进入C:\Anaconda2\Scripts目录,运行:conda install Scrapy 创建Scrapy项目 1)进入 ...
- [jzoj 3175] 数树数 解题报告 (树链剖分)
interlinkage: https://jzoj.net/senior/#main/show/3175 description: 给定一棵N 个节点的树,标号从1~N.每个点有一个权值.要求维护两 ...
- 关于content-type
content-type 包含了表单类型和边界字符串信息. 关于content-type get请求的headers中没有content-type这个字段 post 的 content-type 有两 ...
- Android Studio 一些注意事项(自用,不定期更新)
1,Android Studio 版本的选择 写这篇的时候,官方版本已经到了 v3.2.0,而我习惯使用的版本是 v2.3.1,因为这个版本有自带sdk的安装版,比较方便, 同时,v2.3.1 新建项 ...
- 解析RecyclerView(2)——带顶部View和底部View的RecyclerView
在网络层,互联网提供所有应用程序都要使用的两种类型的服务,尽管目前理解这些服务的细节并不重要,但在所有TCP/IP概述中,都不能忽略他们: 无连接分组交付服务(Connectionless Packe ...
- javascript中常用数组方法详细讲解
javascript中数组常用方法总结 1.join()方法: Array.join()方法将数组中所以元素都转化为字符串链接在一起,返回最后生成的字符串.也可以指定可选的字符串在生成的字符串中来分隔 ...