加载应用程序时更改语言不会在阿拉伯语中翻转UI

时间:2017-04-12 12:33:13

标签: ios objective-c afnetworking

我正在使用Apple的默认方式在我的应用程序中支持阿拉伯语。从iOS 9开始,如果在加载应用程序时设置了语言,UIKit控件将自动翻转。所以在main.m中启动应用程序时,我正在添加以下代码

NSString *userPreferredLanguage = [[NSUserDefaults standardUserDefaults] objectForKey:@"UserPreferedAppLanguage"];
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:userPreferredLanguage, nil] forKey:@"AppleLanguages"];

然而,本地化不会完全发生,并且视图不会被翻转。下次启动应用程序时,视图会被翻转并进行完全本地化。我正在使用AFNetworking和其他很少的图书馆,我认为这会导致问题。任何人都遇到过类似的问题吗?

1 个答案:

答案 0 :(得分:1)

我将以下代码从main.m移到了AppDelegate中的load方法,它运行了!!

NSString *userPreferredLanguage = [[NSUserDefaults standardUserDefaults] objectForKey:@"UserPreferedAppLanguage"];
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:userPreferredLanguage, nil] forKey:@"AppleLanguages"];

问题出在我项目中的一个框架中。他们的内部实现可能在加载方法中加载了这些NSBundle,因为我在main.m中的代码没有效果,因为在main函数之前调用了load方法。