UserDefaultes 数据存储使用

#import "RootViewController.h"

@interface RootViewController ()
@end

@implementation RootViewController
{
     UILabel *txtInteger;
     UILabel *txtFloat;
     UILabel *txtDouble;
     UILabel *txtNSString;
     UILabel *txtNSDate;
     UILabel *txtNSArray;
     UILabel *txtNSDictionary;
}
- (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];

}

 

 

 

原文地址:https://www.cnblogs.com/hl666/p/3709698.html