在iOS中获取不可变的系统语言列表

时间:2014-06-15 10:25:16

标签: ios localization

如果我使用[NSLocale preferredLanguages][[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"],系统将返回语言列表。但是,我的应用程序可以更改此列表(不影响操作系统的其余部分)。有没有办法获得应用程序无法更改的实际全局列表(副本)?

这样做的目的是能够覆盖我的应用程序的手机语言设置,但也能够恢复到原始设置。如果无法访问不可变的全局语言列表,我将无法再次恢复(特别是如果用户更改了语言首选项)。如果我可以获得不可变列表,我可以简单地做这样的事情:

NSMutableArray *systemLanguages = [[someClass getImmutableSystemLanguages] mutableCopy];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

if (overrideLanguage {
    [systemLanguages insertObject:@"languageCode" atIndex:0];
}

[defaults setObject:[systemLanguages copy] forKey"AppleLanguages"];
[defaults synchronize];

0 个答案:

没有答案