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

Changing the language while loading the application is not flipping the UI in arabic

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

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

但是本地化没有完全发生并且视图没有翻转,下次当我启动应用程序时,视图被翻转并且发生了完全本地化。我正在使用 AFNetworking 和少数其他会调配的库,我认为这是导致问题的原因。有人遇到过类似的问题吗?

我将以下代码从 main.m 移至 AppDelegate 中的加载方法并且它有效!!

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

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