美文网首页
NSUserDefaults

NSUserDefaults

作者: 大写的空气 | 来源:发表于2021-03-10 09:44 被阅读0次
    删除所有记录
    NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
    
    [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
    
    或
    
    [[NSUserDefaults standardUserDefaults] setPersistentDomain:[NSDictionary dictionary] forName:[[NSBundle mainBundle] bundleIdentifier]];
    
    
    遍历所有记录
    - (void)resetDefaults {
    
        NSUserDefaults * defs = [NSUserDefaults standardUserDefaults];
    
        NSDictionary * dict = [defs dictionaryRepresentation];
    
        for(id key in dict) {
    
            NSLog("找到的key=%@", key);
    
        }
    
        [defs synchronize];
    
    }
    
    
    registerDefaults 注册默认key,使获取key避免nil
    // 1.创建一个字典
        NSDictionary *dict = @{@"name":@"张三"};
        // 2.使用NSUserDefaults注册默认值
        [[NSUserDefaults standardUserDefaults] registerDefaults:dict];
        // 3.通过key取出值,该值为:张三
        NSLog(@"%@",[[NSUserDefaults standardUserDefaults] valueForKey:@"name"]);
        // 4.设置name的值为李四
        [[NSUserDefaults standardUserDefaults] setObject:@"李四" forKey:@"name"];
        // 5.通过key取出值,该值为:李四
        NSLog(@"%@",[[NSUserDefaults standardUserDefaults] valueForKey:@"name"]);
        // 6.将name的值移除
        [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"name"];
        // 7.通过key取出值,该值为:张三
        NSLog(@"%@",[[NSUserDefaults standardUserDefaults] valueForKey:@"name"]);
    
    通过UserDefaults修改App语言
    [[NSUserDefaults standardUserDefaults] setObject:@[@"zh-Hans"] forKey:@"AppleLanguages"];
    
    单单这样设置,下次APP打开生效
    
    //更改Bundle使本次修改生效. 后续国际化使用下面方法代替系统。
    NSBundle *currentLanguageBundle =  [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"zh-Hans" ofType:@"lproj"]] ;
    
    [currentLanguageBundle localizedStringForKey:@"需国际化的key" value:@"默认名" table:@"国际化文件名"]
    

    相关文章

      网友评论

          本文标题:NSUserDefaults

          本文链接:https://www.haomeiwen.com/subject/hhziqltx.html