iOS开发值NSUserDefaults类概述
NSUserDefaults类概述
NSURL的持久性和文件引用的URLs
沙盒注意事项
方法详解
获取公有的NSUserDefaults实例
- + (NSUserDefaults *)standardUserDefaults;
- 单例模式,获取NSUserDefaults的一个实例,默认Key值如下:
- AppleLanguages,
- AppleKeyboardsExpanded,
- AppleITunesStoreItemKinds,
- AppleLocale,
- AppleKeyboards,
- NSLanguages,
- NSInterfaceStyle
- + (void)resetStandardUserDefaults;
初始化一个NSUserDefaults的对象
- - (id)init;
- - (id)initWithUser:(NSString *)username;
- init是初始化一个公有的defaults对象
- initWithUser是初始化一个针对username的对象
注册一个defaults
- - (void)registerDefaults:(NSDictionary *)registrationDictionary;
- 注册的内容(registrationDictionary里的)不写入磁盘
获取Defaults的值
- - (NSArray *)arrayForKey:(NSString *)defaultName;
- - (BOOL)boolForKey:(NSString *)defaultName;
- 返回一个和defaultName关联的bool值,如果不存在defaultName的话返回NO
- - (NSData *)dataForKey:(NSString *)defaultName
- 返回defaultName所对应的NSData数据,如果defaultName不存在或者返回的数据不是NSData类型的都会返回nil
- 返回的数据是不可变类型的
- - (NSDictionary *)dictionaryForKey:(NSString *)defaultName
- 同dataForKey
- - (float)floatForKey:(NSString *)defaultName
- 同dataForKey
- 如果defaultName不存在返回0
- - (NSInteger)integerForKey:(NSString *)defaultName
- 同floatForKey
- 如果defaultName不存在返回0
- - (id)objectForKey:(NSString *)defaultName
- 同dataForKey
- - (NSArray *)stringArrayForKey:(NSString *)defaultName
- 同dataForKey
- 如果defaultName不存在,或者defaultName所对应的不是一个数组,或者数组包含的不是NSString对象都会返回nil
- - (NSString *)stringForKey:(NSString *)defaultName
- 同dataForKey
- - (double)doubleForKey:(NSString *)defaultName
- - (NSURL *)URLForKey:(NSString *)defaultName
- 同dataForKey
- 当调用[NSUserDefaults URLForKey:]时,有以下3种情况:
- 1.如果值是NSData,NSData可以作为[NSKeyedUnarchiver unarchiveObjectWithData:]的参数。如果NSData可以作为NSURL存档就返回一个NSURL,否则返回nil
- 2.如果值是一个文件引用的URL,那么这个文件引用的URL将会被创建,但是它的书签数据不会被解决直到以后使用NSURL实例
- 3.如果值是一个一~开头的字符串,这个字符串将会用[NSString stringByExpandingTildeInPath]扩展,文件将会以NSURL创建
设置Defaults值
- – setBool:forKey:
- – setFloat:forKey:
- – setInteger:forKey:
- – setDouble:forKey:
- – setObject:forKey:
- 对象参数只能是属性列表对象:NSData,NSString,NSNumber,NSDate,NSArray,NSDictionary
- – setURL:forKey:
移除Defaults值
- - (void)removeObjectForKey:(NSString *)defaultName
维护持久域
- - (BOOL)synchronize
- 把持久域中的任何改变写到磁盘并且更新磁盘上的任何没有修改的持久域
- 如果返回YES表明成功保存到磁盘,相反返回NO
- 这个方法是以一定周期间隔自动调用的,如果你不想等待自动调用就可以调用这个方法来同步。(例如,如果你的应用要退出时,或者你想更新磁盘上的defaults即使你没有做任何改变)
- - (NSDictionary *)persistentDomainForName:(NSString *)domainName
- 返回一个特定持久域的键值对
- - (NSArray *)persistentDomainNames
- 返回当前的持久域的名称
- - (void)removePersistentDomainForName:(NSString *)domainName
- 移除对应domainName的持久域
- - (void)setPersistentDomain:(NSDictionary *)domain forName:(NSString *)domainName
- 设置持久域
- domainName
- This value should be equal to your application's bundle identifier.
访问管理的环境值
- - (BOOL)objectIsForcedForKey:(NSString *)key
- - (BOOL)objectIsForcedForKey:(NSString *)key inDomain:(NSString *)domain
管理搜索列表
- - (NSDictionary *)dictionaryRepresentation
- 返回搜索列表中对应域的所有的键值对
维护不稳定的域
- – removeVolatileDomainForName:
- – setVolatileDomain:forName:
- – volatileDomainForName:
- – volatileDomainNames
维护套件
- - (void)addSuiteNamed:(NSString *)suiteName
- 一个套件可以在不同的应用之间使用
- - (void)removeSuiteNamed:(NSString *)suiteName
- 移除套件
iOS开发值NSUserDefaults类概述的更多相关文章
- IOS开发之支付功能概述
前言:本随笔将对IOS开发的支付功能进行一个概述. 内容大纲: 一.常见的支付方案简介 二.第三方支付SDK 三.苹果官方支付方案 四.Web支付方案 正文: 一.常见的支付方案简介 在微信支付中 微 ...
- iOS开发学习-NSUserDefaults的介绍和用法
NSUserDefaults类提供了一个与默认系统进行交互的编程接口.NSUserDefaults对象是用来保存,恢复应用程序相关的偏好设置,配置数据等等.默认系统允许应用程序自定义它的行为去迎合用户 ...
- ios开发:Core Data概述
Core Data 概述 2005年的四月份,Apple 发布了 OS X 10.4,在这个版本中 Core Data 框架发布了.Core Data本身既不是数据库也不是数据库访问框架.相反,Cor ...
- iOS开发:多线程技术概述
一.概述 线程(thread):用于指代独立执行的代码段. 进程(process):用于指代一个正在运行的可执行程序,它可以包含多个线程. 任务(task):用于指代抽象的概念,表示需要执行工作. 多 ...
- IOS开发--常用工具类收集整理(Objective-C)(持续更新)
前言:整理和收集了IOS项目开发常用的工具类,最后也给出了源码下载链接. 这些可复用的工具,一定会给你实际项目开发工作锦上添花,会给你带来大大的工作效率. 重复造轮子的事情,除却自我多练习编码之外,就 ...
- iOS开发之资讯类App常用分类控件的封装与实现(CollectionView+Swift3.0+)
今天博客中,我们就来实现一下一些常用资讯类App中常用的分类选择的控件的封装.本篇博客中没有使用到什么新的技术点,如果非得说用到了什么新的技术点的话,那么勉强的说,用到了一些iOS9以后UIColle ...
- iOS 开发学习-类的创建与实现,与java语言的对比
Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { //在{}中定义属性(全局变量/实例变量 ...
- ios开发缓存处理类NSCash类的了解与使用
一:NSCash的基本了解 #import "ViewController.h" @interface ViewController ()<NSCacheDelegate&g ...
- iOS开发——时间格式类
目前只实现了三个类方法, 第一个获取当前时间,以字符创的形式返回,例如"201606161532" 第二个以当前时间与给定时间的时间差(秒) 第三个以当前时间与给定时间的时间差(分 ...
随机推荐
- c#中的??运算符
注意啦,c#中的??运算符是和?:运算符是不同的,这两者是有区别的. ??运算符称为null合并运算符,用于定义null值的类型和引用类型的默认值. 只当运算符的左操作数不为 null,此运算符将返回 ...
- JS isNaN()函数
1.作用 isNaN() 函数用于检查其参数是否是非数字值. 2.JS <script> document.write(isNaN(123)); document.write(isNaN( ...
- jQuery中,子页面与父页面之间的调用方法
在jQuery中, 子页面查找父页面的元素 parent.$("#元素Id") 父页面调用子页面的元素 $("#子页面iframe的Id").contents( ...
- Servlet3.0提供的异步处理
用属性asyncSupported=true开启Servlet对异步的支持. 在请求时,在request.startAsync()抛java.lang.IllegalStateException: N ...
- C调用栈重温
C栈的地址是从高位地址不断忘低位地址膨胀的,最先调用的函数所处的栈地址最高,后被调用的地址在低位: A->H这些地址表明了表明了基本的调用关系,AB是函数入参,CD是函数内的变量. 先调用者在高 ...
- MySQL SELECT 语句
SELECT语句: products表例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1eWluZ18xMDAx/font/5a6L5L2T ...
- activemq5.14.5单节点安装Demo
什么情况下使用ActiveMQ? 1 多个项目之间集成 (1) 跨平台 (2) 多语言 (3) 多项目 2 降低系统间模块的耦合度,解耦 软件扩展性 3 系统前后端隔离 前后端 ...
- PortableApps的使用方法
1 从官方网站下载这个软件,建议只下载PortableApps Platform Only即可,因为官方提供的软件其实很少,大多数需要我们自己添加. PortableApps 致力于将一些常见的开源软 ...
- Visual Studio 2015下编译zmq项目下其他项目踩进的项目引用坑
PS.在之前的一篇文章中介绍了如何用Visual Studio 2015编译zmq,在编译同解决方案中除了libzmq之外的项目例如inproc_thr时会报错误,具如下: Severity Code ...
- 【ajax+php】动态展示4级单位(省、市、县、镇)
1.本篇教程以ajax+php动态展示[省.市.县.镇]四级地区单位 2.效果图: 3.不废话,贴代码! HTML: <div class="form-group"&g ...