Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 有没有办法在运行时更改iphone应用程序语言?_Ios_Iphone_Objective C_Localization - Fatal编程技术网

Ios 有没有办法在运行时更改iphone应用程序语言?

Ios 有没有办法在运行时更改iphone应用程序语言?,ios,iphone,objective-c,localization,Ios,Iphone,Objective C,Localization,我的应用程序支持英语和匈牙利语言的本地化 如果用户从电话设置中设置了英语或匈牙利以外的默认语言,我想将默认语言设置为匈牙利语,而不是英语 例如,如果用户的手机设置语言是法语,因为我的应用程序不支持法语本地化,所以应该在匈牙利启动,默认情况下不使用英语 我在app delegate中的didfishlaunchingwithoptions方法中使用了以下代码: [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLa

我的应用程序支持英语匈牙利语言的本地化

如果用户从电话设置中设置了英语或匈牙利以外的默认语言,我想将默认语言设置为匈牙利语,而不是英语

例如,如果用户的手机设置语言是法语,因为我的应用程序不支持法语本地化,所以应该在匈牙利启动,默认情况下不使用英语

我在app delegate中的
didfishlaunchingwithoptions
方法中使用了以下代码:

 [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];
 [NSUserDefaults resetStandardUserDefaults];
 NSLog(@"%@",[NSLocale preferredLanguages]);

 NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];

 if ([language isEqualToString:@"en"])
 {
    NSArray *langOrder = [NSArray arrayWithObjects:@"en", nil];
    [[NSUserDefaults standardUserDefaults] setObject:langOrder forKey:@"AppleLanguages"];
 }
 else
 {
    NSArray *langOrder = [NSArray arrayWithObjects:@"hu", nil];
    [[NSUserDefaults standardUserDefaults] setObject:langOrder forKey:@"AppleLanguages"];
 }
因此,在电话设置更改语言后,
[[NSLocale preferredLanguages]objectAtIndex:0]
立即返回新语言的字符串,即正确的当前语言,并且在代码中以正确的条件输入

但语言只有在第二次重新启动应用程序时才会改变,而不是在第一次启动时

那我该怎么做呢


谢谢..

请看这里:问题解决了,在调用UIApplicationMain()之前,我在main.m中放了相同的代码。现在工作正常。