NSUserDefaults用户默认数据对象

用途

用来存储数据对象,是单例模式,一旦创建就是全局唯一的实例对象。可以在任何位置进行存放和读取里面的数据。

  • 注意:只能存储能够文件化的对象,不能存储动态创建的对象(eg:view)

相关方法

  • +NSUserDefaults standardUserDefaults类方法,创建实例对象
    因为是单例对象,不用alloc来创建
    standardUserDefaults获取全局唯一的实例对象
  • setObject: @"lychee" forKey:@"NAME" 存储对象(字符串,,,)
    P1:要存储的对象 id
    P2:对象的名字key:NSString
  • 要存储整型数据时:
  • setInteger:num forKey:@"NUM"
  • setBool:YES forKey:@"BOOL"
  • setFloat:1.333 forKey:@"FLOAT"
  • 要读取里面存储的数据时:
  • objectForKey:@"name"
  • integerForKey:@"int"
  • boolForKey:@"BOOL"
  • floatForKey:@"float"

具体使用

直接在.m实现文件中:

- (void)viewDidLoad {
    [super viewDidLoad];
    // 在视图中创建两个按钮:存储,读取来验证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{
    //定义一个用户默认数据对象
    //不需要alloc创建,是单例模式
    //standardUserDefaults获取全局唯一的实例对象
    NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
    
    //存储字符串对象
    //可以将对象存储到内部文件中
    //P1:要存储的对象 id
    //P2:对象的名字key:NSString
    [ud setObject:@"lychee" forKey:@"NAME"];
    
    NSNumber *num = [NSNumber numberWithInt:100];
    //存储数据对象
    //只能存储能够文件化的对象
    //不能存储动态创建的对象(eg:view)
    [ud setObject:num forKey:@"NUM"];
    
    //存储整型数据
    [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{
    //读取用户默认对象的内容
    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"]);
    
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,310评论 6 13
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,275评论 30 472
  • 1.OC里用到集合类是什么? 基本类型为:NSArray,NSSet以及NSDictionary 可变类型为:NS...
    轻皱眉头浅忧思阅读 1,405评论 0 3
  • iOS 開発の結構 画面 UI UIWebview [[UIApplication sharedApplicati...
    RencaiXiong阅读 615评论 0 0
  • 文/琅玕 被太阳晒得发白的夏天 只有知了在胡言乱语 你说 不过开始而已 以后可怎么办 眉蹙着像是揉皱了的纸 写着我...
    大雪封山好几年阅读 411评论 4 2