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:@"国际化文件名"]