NSUserDefaults

2021-03-10  本文已影响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:@"国际化文件名"]
上一篇下一篇

猜你喜欢

热点阅读