码农的空间

codding
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

NSUserDefault的使用

Posted on 2016-10-03 16:16  我是孙海龙  阅读(572)  评论(0编辑  收藏  举报

NSUserDefaults 在我们编写代码中是最常用的一个永久保存数据的方法,也是最简单的。

使用NSUserDefault需要注意:

1.数据的本地化保存不是实时的,如果需要实时保存,调用synchronize方法。

2.保存的数据必须是“不可变的”。

3.保存数据数据使用 setObjectforKey(不同数据类型提供了不同的方法,例如保存Integer使用SetIntegerforKey等),同理读取使用ObjectforKey(IntegerforKey)。

 

- (void) btnClick : (UIButton*) sender {
    NSInteger tag = sender.tag;
    
    NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
    if(tag == 101) {
        [def setInteger:31 forKey:@"age"];
        [def setObject:@"harry" forKey:@"name"];
        NSArray *array = [NSArray arrayWithObjects:@"tongji", @"cumt", @"wsyz", nil];
        [def setObject:array forKey:@"edu"];
        //强制写入文件
        [def synchronize];
    } else if (tag == 102) {
        NSInteger age = [def integerForKey:@"age"];
        NSString *name = [def objectForKey:@"name"];
        NSArray *edu = [def objectForKey:@"edu"];
        
        NSLog(@"name is %@, age is %ld, edu is %@", name, (long)age, edu);
    }
}