首页 > 代码库 > UserDefaultes 数据存储使用

UserDefaultes 数据存储使用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#import "RootViewController.h"
 
@interface RootViewController ()
@end
 
@implementation RootViewController
{
     UILabel *txtInteger;
     UILabel *txtFloat;
     UILabel *txtDouble;
     UILabel *txtNSString;
     UILabel *txtNSDate;
     UILabel *txtNSArray;
     UILabel *txtNSDictionary;
}

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self  creatLable];
    [self creatclearbtn];
    [self  saveNSUserDefaults];
    [self  readNSUserDefaults];
}
 
 
//保存数据到NSUserDefaults
-(void)saveNSUserDefaults
{
     
    int myInteger = 1000;
    float myFloat = 60.0f;
    double myDouble = 30.0;
     
    NSString *myString = @"我的字符";
    NSDate *myDate = [NSDate date];
    NSArray *myArray = [NSArray arrayWithObjects:@"hello", @"world",@"one",@"dream", nil];
    NSDictionary *myDictionary = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"enuo", @"20", nil] forKeys:[NSArray arrayWithObjects:@"name", @"age", nil]];
     
    //将上述数据全部存储到NSUserDefaults中
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    //存储时,除NSNumber类型使用对应的类型意外,其他的都是使用setObject:forKey:
    [userDefaults setInteger:myInteger forKey:@"myInteger"];
    [userDefaults setFloat:myFloat forKey:@"myFloat"];
    [userDefaults setDouble:myDouble forKey:@"myDouble"];
 
    [userDefaults setObject:myString forKey:@"myString11"];
    [userDefaults setObject:myDate forKey:@"myDate"];
    [userDefaults setObject:myArray forKey:@"myArray"];
    [userDefaults setObject:myDictionary forKey:@"myDictionary"];
     
    //这里建议同步存储到磁盘中,但是不是必须的
    [userDefaults synchronize];
     
}
 
 
//从NSUserDefaults中读取数据
-(void)readNSUserDefaults
{
    NSUserDefaults *userDefaultes = [NSUserDefaults standardUserDefaults];
    //读取数据到各个label中
    //读取整型int类型的数据
    NSInteger myInteger = [userDefaultes integerForKey:@"myInteger"];
    txtInteger.text = [NSString stringWithFormat:@"整形:%d",myInteger];
     
    //读取浮点型float类型的数据
    float myFloat = [userDefaultes floatForKey:@"myFloat"];
    txtFloat.text = [NSString stringWithFormat:@"浮点型:%f",myFloat];
     
    //读取double类型的数据
    double myDouble = [userDefaultes doubleForKey:@"myDouble"];
    txtDouble.text = [NSString stringWithFormat:@"%f",myDouble];
     
    //读取NSString类型的数据
    NSString *myString = [userDefaultes stringForKey:@"myString11"];
    txtNSString.text = myString;
     
    //读取NSDate日期类型的数据
    NSDate *myDate = [userDefaultes valueForKey:@"myDate"];
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    txtNSDate.text = [NSString stringWithFormat:@"日期:%@",[df stringFromDate:myDate]];
     
    //读取数组NSArray类型的数据
    NSArray *myArray = [userDefaultes arrayForKey:@"myArray"];
    NSString *myArrayString = [[NSString alloc] init];
    for(NSString *str in myArray)
    {
        NSLog(@"str= %@",str);
        myArrayString = [NSString stringWithFormat:@"%@  %@", myArrayString, str];
        [myArrayString stringByAppendingString:str];
        //        [myArrayString stringByAppendingFormat:@"%@",str];
        NSLog(@"myArrayString=%@",myArrayString);
    }
    txtNSArray.text = myArrayString;
     
    //读取字典类型NSDictionary类型的数据
    NSDictionary *myDictionary = [userDefaultes dictionaryForKey:@"myDictionary"];
    NSString *myDicString = [NSString stringWithFormat:@"name:%@, age:%d",[myDictionary valueForKey:@"name"], [[myDictionary valueForKey:@"age"] integerValue]];
    txtNSDictionary.text = myDicString;
}
 
//清除数据UserDefaultes
-(void)ClearUserDefaultes
{
    NSString   *appDomain=[[NSBundle   mainBundle]bundleIdentifier];
    [[NSUserDefaults  standardUserDefaults]removePersistentDomainForName:appDomain];
    [self  readNSUserDefaults];
 
}
 
 
//清除按钮
-(void)creatclearbtn
{
    UIButton  *btn=[UIButton  buttonWithType:UIButtonTypeRoundedRect];
    btn.frame=CGRectMake(100, 400, 100, 30);
    [btn setTitle:@"清除" forState:UIControlStateNormal];
    btn.backgroundColor=[UIColor  yellowColor];
    [self.view  addSubview:btn];
    [btn  addTarget:self action:@selector(ClearUserDefaultes) forControlEvents:UIControlEventTouchDown];
}
 
//创建Label
-(void)creatLable
{
    txtInteger=[[UILabel  alloc]initWithFrame:CGRectMake(0, 40, 200, 30)];
    txtInteger.backgroundColor=[UIColor  brownColor];
    [self.view  addSubview:txtInteger];
     
    txtFloat=[[UILabel  alloc]initWithFrame:CGRectMake(0,80, 200, 30)];
    txtFloat.backgroundColor=[UIColor  brownColor];
    [self.view  addSubview:txtFloat];
     
    txtDouble=[[UILabel  alloc]initWithFrame:CGRectMake(0, 120, 200, 30)];
    txtDouble.backgroundColor=[UIColor  brownColor];
    [self.view  addSubview:txtDouble];
     
    txtNSString=[[UILabel  alloc]initWithFrame:CGRectMake(0, 160, 200, 30)];
    txtNSString.backgroundColor=[UIColor  brownColor];
    [self.view  addSubview:txtNSString];
     
    txtNSDate=[[UILabel  alloc]initWithFrame:CGRectMake(0, 200, 200, 30)];
    txtNSDate.backgroundColor=[UIColor  brownColor];
 
    [self.view  addSubview:txtNSDate];
     
    txtNSArray=[[UILabel  alloc]initWithFrame:CGRectMake(0, 240, 200, 30)];
    txtNSArray.backgroundColor=[UIColor  brownColor];
    [self.view  addSubview:txtNSArray];
     
    txtNSDictionary=[[UILabel  alloc]initWithFrame:CGRectMake(0, 280, 200, 30)];
    txtNSDictionary.backgroundColor=[UIColor  brownColor];
    [self.view  addSubview:txtNSDictionary];
 
}