用途
用來存儲(chǔ)數(shù)據(jù)對(duì)象交煞,是單例模式,一旦創(chuàng)建就是全局唯一的實(shí)例對(duì)象碌秸。可以在任何位置進(jìn)行存放和讀取里面的數(shù)據(jù)悄窃。
- 注意:只能存儲(chǔ)能夠文件化的對(duì)象讥电,不能存儲(chǔ)動(dòng)態(tài)創(chuàng)建的對(duì)象(eg:view)
相關(guān)方法
- +NSUserDefaults standardUserDefaults類方法,創(chuàng)建實(shí)例對(duì)象
因?yàn)槭菃卫龑?duì)象轧抗,不用alloc來創(chuàng)建
standardUserDefaults獲取全局唯一的實(shí)例對(duì)象 - setObject: @"lychee" forKey:@"NAME" 存儲(chǔ)對(duì)象(字符串恩敌,,横媚,)
P1:要存儲(chǔ)的對(duì)象 id
P2:對(duì)象的名字key:NSString - 要存儲(chǔ)整型數(shù)據(jù)時(shí):
- setInteger:num forKey:@"NUM"
- setBool:YES forKey:@"BOOL"
- setFloat:1.333 forKey:@"FLOAT"
- 要讀取里面存儲(chǔ)的數(shù)據(jù)時(shí):
- objectForKey:@"name"
- integerForKey:@"int"
- boolForKey:@"BOOL"
- floatForKey:@"float"
具體使用
直接在.m實(shí)現(xiàn)文件中:
- (void)viewDidLoad {
[super viewDidLoad];
// 在視圖中創(chuàng)建兩個(gè)按鈕:存儲(chǔ)纠炮,讀取來驗(yàn)證NSUserDefauls
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(100, 100, 80, 40);
[btn setTitle:@"寫入" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(pressWrite) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn2.frame = CGRectMake(100, 200, 80, 40);
[btn2 setTitle:@"讀出" forState:UIControlStateNormal];
[btn2 addTarget:self action:@selector(pressRead) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn2];
}
-(void)pressWrite{
//定義一個(gè)用戶默認(rèn)數(shù)據(jù)對(duì)象
//不需要alloc創(chuàng)建月趟,是單例模式
//standardUserDefaults獲取全局唯一的實(shí)例對(duì)象
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
//存儲(chǔ)字符串對(duì)象
//可以將對(duì)象存儲(chǔ)到內(nèi)部文件中
//P1:要存儲(chǔ)的對(duì)象 id
//P2:對(duì)象的名字key:NSString
[ud setObject:@"lychee" forKey:@"NAME"];
NSNumber *num = [NSNumber numberWithInt:100];
//存儲(chǔ)數(shù)據(jù)對(duì)象
//只能存儲(chǔ)能夠文件化的對(duì)象
//不能存儲(chǔ)動(dòng)態(tài)創(chuàng)建的對(duì)象(eg:view)
[ud setObject:num forKey:@"NUM"];
//存儲(chǔ)整型數(shù)據(jù)
[ud setInteger:123 forKey:@"INT"];
[ud setBool:YES forKey:@"BOOL"];
[ud setFloat:1.5555 forKey:@"FLOAT"];
NSArray *array = [NSArray arrayWithObjects:@"11",@"22",@"33",nil];
[ud setObject:array forKey:@"ARRAY"];
NSLog(@"lalalalaa");
}
-(void)pressRead{
//讀取用戶默認(rèn)對(duì)象的內(nèi)容
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
id object = [ud objectForKey:@"NAME"];
NSString *name = (NSString*)object;
NSLog(@"name = %@",name);
NSLog(@"num = %@",[ud objectForKey:@"NUM"]);
NSLog(@"int = %ld",[ud integerForKey:@"INT"]);
NSLog(@"bool = %d",[ud boolForKey:@"BOOL"]);
NSLog(@"float = %f",[ud floatForKey:@"FLOAT"]);
NSLog(@"array = %@",[ud objectForKey:@"ARRAY"]);
}