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

一、使用理由:存取数据单一,小;代码简洁。

1、NSUserDefaults数据存储的位置

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

2、支持存取的数据类型 
   NSUserDefaults只支持: NSString, NSNumber, NSDate, NSArray, NSDictionary.

3、取 
   例如: 
Objective-c代码  
//读取和保存用户使用软件次数    
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];    
NSNumber* count = [ud objectForKey:@"times"];


4、存

   接上例: 
Objective-c代码  
int t = [count intValue]+1;    
[ud setObject:[NSNumber numberWithInt:t] forKey:@"times"]; 

 

二、NSUserDefaults可以存取一些短小的信息。

1、NSUserDefaults数据存储的位置

NSUserDefaults用于保存iPhone程序的数据,使用非常方便。
那么这些数据最终存放在什么地方呢?存放于一个plist文件中。这个文件位于
<UUID for your App>LibraryPreferences<your App"s bundle 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 = [NSUserDefaults standardUserDefaults];

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

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

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

[accountDefaults boolForKey: UserDefaultBoolKey];


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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值