有没有办法通过代码更改iOS模拟器上的区域设置/语言?

时间:2014-05-09 21:49:50

标签: ios objective-c nslocale

我正在寻找一种方法来更改iOS设备Locale,而无需进行设置并导入一些新框架。只需一个简单的脚本即可,甚至是一段代码。我想知道是否有类似的东西:

[[NSLocale currentLocale] setLocale:@"WhateverLocale"];

1 个答案:

答案 0 :(得分:1)

这可能会或可能不会满足您的需求,但通过应用程序当前区域设置获得编程访问权的一种方法是覆盖NSUserDefaults中的AppleLanguages密钥。例如,要更改为法语:

[[NSUserDefaults standardUserDefaults] setObject:@[ @"fr" ]
                                          forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];

此方法的缺点是您需要关闭并重新打开应用程序才能使更改生效。

注意,要返回系统默认值,只需调用:

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];