defs = [NSUserDefaults standardUserDefaults];
languages=[[NSMutableArray alloc]init];
languages= [defs objectForKey:@"AppleLanguages"];
NSString* preferredLang = [languages objectAtIndex:14];
NSString *chn=@"zh-Hans";
NSString *eng=@"en";
[languages replaceObjectAtIndex:0 withObject:chn];
[languages replaceObjectAtIndex:14 withObject:eng];
defs=(NSUserDefaults*)languages;
我可以更改NSUserDefaults defs的内容。但它对苹果语没有影响。谁能帮我?我需要将defs的第一个对象存储为当前语言。
答案 0 :(得分:1)
您似乎正在尝试为用户设置当前语言。
iOS sdk不支持;用户必须自己在设置中执行此操作。
如果您解释了尝试这样做的动机,也许我可以提供解决方案。
答案 1 :(得分:0)
您可能正在尝试这样做
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *languages = [defaults objectForKey:@"AppleLanguages"];
languages = [[languages mutableCopy] autorelease];
[languages replaceObjectAtIndex:0 withObject:@"zh-Hans"];
[languages replaceObjectAtIndex:14 withObject:@"en"]
[defaults setObject:languages forKey:@"AppleLanguages"];
但你确定要对用户强加一种语言吗?他总是可以选择通过设置应用程序更改语言。
您还需要确保已正确设置本地化字符串。如果您还没有,请阅读this文档。
答案 2 :(得分:0)
NSMutableArray *languages= [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
NSString *chn=@"zh-Hans";
NSString *eng=@"en";
[languages replaceObjectAtIndex:0 withObject:chn];
[languages replaceObjectAtIndex:14 withObject:eng];
[[NSUserDefaults standardUserDefaults] setObject:languages forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSMutableArray *languagesAterChange= [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
NSLog(@"Lang:%@ | %@",[languagesAterChange objectAtIndex:0],[languagesAterChange objectAtIndex:14]);
你去。