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" 第二个以当前时间与给定时间的时间差(秒) 第三个以当前时间与给定时间的时间差(分 ...
随机推荐
- xss的高级利用
以往对XSS的利用大多数都是针对于挂马,钓鱼,盗cookie等,这些方式并没有真正发挥到XSS的作用,因为很少人能了解XSS的实质,会话劫持,浏览器劫持,XSS能做到的东西远远超乎我们的想象. 一 X ...
- 初入android驱动开发之字符设备(一)
大学毕业,初入公司,招进去的是android驱动开发工程师的岗位,那时候刚进去,首先学到的就是如何搭建kernel.android的编译环境,然后就是了解如何刷设备以及一些最基本的工具.如adb.fa ...
- C#程序输出信息到调试窗口的几种方式
网站项目: System.Diagnostics.Debug.WriteLine("aaa"); 控制项目:Console.WriteLine("bbb"); ...
- mysql5.7用户密码策略问题
密码策略问题 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 查看 mysql 初 ...
- AllJoyn 的JoinSession() 返回timeout问题
在项目中AllJoyn一直有个问题困扰着我们:client在加入session时调用JoinSession()函数有时会timeout失败. 注意:是“有时”失败,而有时又运行的很好.这种不确定性问题 ...
- 【转】Go maps in action
原文: https://blog.golang.org/go-maps-in-action ------------------------------------------------------ ...
- (转) java中try/catch性能和原理
stackoverflow上有一个讨论,参与的人还挺多: https://stackoverflow.com/questions/141560/should-try-catch-Go-inside-o ...
- web页面内容优化管理与性能技巧
来源:GBin1.com 回 想一下,以前我们不得不花费大量时间去优化页面内容(图片.CSS等等),如今用户有更快速的互联网链接,我们似乎能够使用更大的图像或更大的闪 存文件,里面包含的有视频或者图片 ...
- 直接插入排序、折半插入排序、shell插入排序
直接插入排序: 折半插入排序: shell插入排序:
- k8s的Ingress
一.Ingress简介 外部访问集群内的服务,可以通过NodePort或LoadBalancer(这通常由云服务商提供),还可以通过ingress访问. Ingress包含两个组件Ingress Co ...