Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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
Objective c 如何在compileTime或更好的运行时强制本地化_Objective C_Ios_Localization - Fatal编程技术网

Objective c 如何在compileTime或更好的运行时强制本地化

Objective c 如何在compileTime或更好的运行时强制本地化,objective-c,ios,localization,Objective C,Ios,Localization,我有一个IOS项目,根据语言的不同,可以显示许多不同的图像,我找不到在运行时强制加载正确图像的方法(不切换语言)。 实际上,这些文件似乎是在AppDelegate有机会进行交互之前加载的 如果我在appDelegate中执行此操作(didFinishLaunchingWithOptions:): 已经太晚了,图像已经用错误的语言加载。因此,为了实现这一点,我将NSUserDefaults移到main()调用中,这个技巧很有效。但我的问题是:苹果会拒绝我的应用程序吗?有没有更好、干净的方法在编译时

我有一个IOS项目,根据语言的不同,可以显示许多不同的图像,我找不到在运行时强制加载正确图像的方法(不切换语言)。 实际上,这些文件似乎是在AppDelegate有机会进行交互之前加载的

如果我在appDelegate中执行此操作(didFinishLaunchingWithOptions:):

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

更新


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

您可以本地化info.plist(InfoPlist.strings),这使您可以为每种语言设置Default.png

运行时不涉及XCode。因此,加载映像的是操作系统,而不是XCode。但我们谈论的是什么操作系统(iOS、MacOS)?请添加相应的标签。Codo我已更新我的问题。这是在IOS中,我不确定我是否可以在编译时强烈地改变这种行为(比如进入info.plist),这就是为什么我使用Xcode比使用运行时层更多的原因。我同意吉拉德的回答。
[[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects: @"es", @"en", nil] forKey:@"AppleLanguages"];