0

我有一个 IOS 项目,根据语言显示许多不同的图像,我找不到在运行时强制加载正确图像的方法(而不是将语言切换到另一种语言)。实际上,似乎在 AppDelegate 有机会干预之前加载了文件。

如果我在 appDelegate (didFinishLaunchingWithOptions:) 中这样做:

[[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects: @"es", @"en", nil] forKey:@"AppleLanguages"];

已经太晚了,图像已经以错误的语言加载。因此,为了实现这一点,我将 NSUserDefaults 移到了 main() 调用中,这个技巧很有效。但我的问题是:Apple 会拒绝我的应用程序吗?有没有更好、更干净的方法在编译时同步语言(或使用 plist 或类似的东西)?

更新

似乎只是替换 [[NSUserDefaults standardUserDefaults] setObject: forKey:],在调用我的 nib 文件之前的进一步步骤就可以了。这就像 [NSUserDefaults standardUserDefaults] 被异步调用。因此,也许在我的 nib 文件加载后实际评估了 setter 方法。但是我可以通过 info.plist 更改本地化设置吗?

4

1 回答 1

0

您可以本地化 Info.plist (InfoPlist.strings),这样您就可以为每种语言设置 Default.png。

于 2012-10-30T12:44:33.880 回答