NSUserDefaults实现小型数据的快速存取

原文:http://blog.sina.com.cn/s/blog_9da803060100xsq6.html

1、NSUserDefaults数据存储的位置

NSUserDefaults用于保存iPhone程序的数据,使用非常方便。
那么这些数据最终存放在什么地方呢?存放于一个plist文件中。这个文件位于
<UUID for yourApp>\Library\Preferences\<your App"sbundle ID>.plist

2、得到用户的首选语言
//得到用户缺省值
NSUserDefaults* defs = [NSUserDefaults standardUserDefautls];
//在缺省值中找到AppleLanguages, 返回值是一个数组
NSArray* languages = [defs objectForKey:@"AppleLanguages"];
//在得到的数组中的第一个项就是用户的首选语言了
NSString* preferredLang = [languages objectAtIndex:0];

3、比如存入再读出一个字符串到NSUserDefaults:

NSString *string [NSString stringWithString @"hahaha"];
NSUserDefaults *ud [NSUserDefaults standardUserDefaults];
[ud setObject:string forKey:@"myKey"]; 
NSString *value;
value [ud objectForKey:"myKey"];  
 

但是并不是所有的东西都能往里放的。NSUserDefaults只支持: NSString, NSNumber, NSDate,NSArray, NSDictionary.

三、NSUserDefaults的使用

1、创建一个user defaults方法有多个,最简单得快速创建方法:
NSUserDefaults *accountDefaults = [NSUserDefaultsstandardUserDefaults];

2、添加数据到 user defaults:
[accountDefaults setObject:nameField.textforKey:UserDefaultNameKey];

也可以添加基本数据类型int, float, bool等,有相应得方法
[accountDefaults setBool:YES forKey:UserDefaultBoolKey];

3、从user defaults中获取数据:
[accountDefaults objectForKey:NCUserDefaultNameKey]

[accountDefaults boolForKey: UserDefaultBoolKey];


要点:NSUserDefaults非常好用,并不需要用户在程序中设置NSUserDefaults的全局变量,需要在哪里使用NSUserDefaults的数据,那么就在哪里创建一个NSUserDefaults对象,然后进行读或者写操作。

    针对同一个关键字对应的对象或者数据,可以对它进行重写,重写之后关键字就对应新的对象或者数据,旧的对象或者数据会被自动清理。

类方法


resetStandardUserDefaults

同步对共享对象的任何更改默认用户和从内存中释放它。


standardUserDefaults

返回共享默认对象。

+(NSUserDefaults *)standardUserDefaults

addSuiteNamed:

插入到接收器的搜索列表中指定的域名。

-(void)addSuiteNamed:( NSString *) suiteName

arrayForKey:

返回与指定键相关联的数组。

- ( NSArray *)arrayForKey:( NSString *) defaultName

boolForKey:

返回布尔值与指定键相关联。

-(BOOL)boolForKey:( NSString *) defaultName

dataForKey:

返回数据对象与指定键相关联。

- ( NSData *)dataForKey:( NSString *) defaultName

dictionaryForKey:

返回Dictionary对象与指定键相关联。

- ( NSDictionary *)dictionaryForKey:( NSString *) defaultName

dictionaryRepresentation

返回一个字典,它包含在搜索列表中的域的所有键值对联盟。NSDataNSStringNSNumberNSDateNSArray,或NSDictionary

- ( NSDictionary *)dictionaryRepresentation

removeObjectForKey:

消除了在标准应用程序域指定的默认​​键值。

-(void)removeObjectForKey:(NSString *) defaultName

removePersistentDomainForName:

删除指定的从用户的默认持久域的内容。

-(void)removePersistentDomainForName:(NSString *) domainName

setBool:forKey:

设置指定的默认​​键到指定的布尔值。

-(void)setBool:(BOOL) value forKey:( NSString *) defaultName

setObject:forKey:

setPersistentDomain:forName:

.设置为指定的字典持久域。

-(void)setPersistentDomain:(NSDictionary *) domain forName:( NSString *) domainName

setURL:forKey:

设置指定的默认​​键到指定的URL值。

-(void)setURL:( NSURL *) url forKey:( NSString *) defaultName


setVolatileDomain:的forName:

设置为指定的字典挥发性域。

-(void)setVolatileDomain:(NSDictionary *) domain forName:( NSString *) domainName

stringArrayForKey:

返回与指定键关联的字符串数组。

- ( NSArray *)stringArrayForKey:( NSString *) defaultName

stringForKey:

返回与指定键关联的字符串。

- ( NSString *)stringForKey:( NSString *) defaultName

URLForKey:

返回NSURL实例与指定键相关联。

- (NSURL *)URLForKey:( NSString *)defaultName 

doubleForKey:

返回double值与指定键相关联。

-(double)doubleForKey:( NSString *) defaultName


floatForKey:

返回浮点值与指定键相关联。

-(float)floatForKey:( NSString *) defaultName

initWithUser:

返回NSUserDefaults对象初始化的用户帐户的默认为指定的。

-(id)initWithUser:( NSString *) username

integerForKey:

返回整数值与指定键关联..

- ( NSIntegerNSInteger )integerForKey:( NSString *) defaultName

objectForKey:

返回与指定默认的第一个发生关联的对象。

-(id)objectForKey:( NSString *) defaultName

objectIsForcedForKey:

判断此key是否存在

-(BOOL)objectIsForcedForKey:(NSString *) key
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值