//
// RootViewController.m
#import "RootViewController.h"
@interface RootViewController ()
{
NSMutableArray * dataSource;
}
@end
@implementation RootViewController
-(void)createUI
{
NSArray * arr = @[@"NSNumber数据:",@"integer:",@"float:",@"double:",@"NSString数据:",@"NSDate数据:",@"NSArray数据:",@"NSDictionary数据:"];
for(int i = 0;i<[arr count];i++)
{
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(0, 70 + 40 * i, 140, 30)];
label.text = arr[i];
label.textAlignment = NSTextAlignmentRight;
[self.view addSubview:label];
[label release];
}
for(int i = 1;i<[arr count];i++)
{
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(145, 70 + 40 * i, 170, 30)];
label.tag = i;
label.textAlignment = NSTextAlignmentLeft;
label.backgroundColor = [UIColor cyanColor];
[self.view addSubview:label];
[label release];
}
}
//向userDefaults里面写入数据
-(void)writeUserDefaults
{
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
NSInteger i = 100;
float f = 50.0f;
double d = 1000.0;
NSString * string = @"字符串";
NSArray * arr = @[@"hello",@"world"];
NSDictionary * dic = @{@"name":@"test",@"age":@"19"};
NSDate * date = [NSDate date];
//存入的数据 无论是可变的还是不可变的 读出来以后都是不可变的数据
[defaults setInteger:i forKey:@"int"];
[defaults setFloat:f forKey:@"float"];
[defaults setDouble:d forKey:@"double"];
//基本类型的数据存放在userDefaults以后都会自动转化成NSNumber
[defaults setObject:string forKey:@"string"];
[defaults setObject:arr forKey:@"array"];
[defaults setObject:dic forKey:@"dic"];
[defaults setObject:date forKey:@"date"];
//写入磁盘
[defaults synchronize];
}
//读数据
-(void)readUserDefaults
{
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
dataSource = [[NSMutableArray alloc]init];
NSString * intStr = [NSString stringWithFormat:@"%@",[defaults objectForKey:@"int"]];
NSString * floatStr = [NSString stringWithFormat:@"%f",[defaults floatForKey:@"float"]];
NSString * doubleStr = [NSString stringWithFormat:@"%lf",[defaults doubleForKey:@"double"]];
NSString * stringStr = [defaults objectForKey:@"string"];
NSArray * arr = [defaults objectForKey:@"array"];
NSString * arrStr = [arr componentsJoinedByString:@" "];
NSDictionary * dic = [defaults objectForKey:@"dic"];
NSString * dicStr = [NSString stringWithFormat:@"name:%@,age:%@",[dic objectForKey:@"name"],[dic objectForKey:@"age"]];
NSDate * date = [defaults objectForKey:@"date"];
NSDateFormatter * formatter = [[NSDateFormatter alloc]init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString * dateStr = [formatter stringFromDate:date];
[formatter release];
[dataSource addObject:intStr];
[dataSource addObject:floatStr];
[dataSource addObject:doubleStr];
[dataSource addObject:stringStr];
[dataSource addObject:dateStr];
[dataSource addObject:arrStr];
[dataSource addObject:dicStr];
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationItem.title = @"UserDefualts的用法";
self.view.backgroundColor = [UIColor brownColor];
UIBarButtonItem * item = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(pressBarBtn:)];
self.navigationItem.rightBarButtonItem = item;
[item release];
[self createUI];
[self writeUserDefaults];
[self readUserDefaults];
}
-(void)pressBarBtn:(id)sender
{
//查找沙盒目录的路径
NSArray * arr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * path = [arr objectAtIndex:0];
NSLog(@"%@",path);
for(int i = 0;i<[dataSource count];i++)
{
UILabel * lable = (UILabel *)[self.view viewWithTag:i + 1];
lable.text = dataSource[i];
}
}
@end