假设我们可以在运行时更改 Localizable.strings,即放置在 NSBundle 中。当前,即使我们更改它的内容,NSLocalizedString也会返回旧的(缓存的)值。
- 运行应用程序
- 获取特定 key1 <- value1 的 LocalizableString
- 更改 Localizable.strings key1 = value2
- <-- 在应用程序中做一些事情来使本地化缓存失效-->
- 检查特定 key1 == value2 的 LocalizableString
我已经尝试过的:
- [[NSBundble mainBundle] 无效资源缓存]
- [UIApplication_performMemoryWarning]
- 试着看看,如果有一些字典。用于缓存,在 NSBundle 的 ivars 中。
- 试图看到,在 NSBundle 的 GNUStep 实现中,但它与我们在 ios 6.0 中的不同
我不能做什么(根据定义): - 我不能调配 [NSBundle localizableStringForKey:value:table] - 我不能更改宏 - 一般来说,我不能影响任何原始项目代码,只能在步骤 #4 添加一些东西
这仅用于开发目的。所以,我不需要在 AppStore 或其他地方发布它,所以任何私有方法或解决方案都可以。
所以,问题是。可能有人知道如何做到这一点,或者有人给我另一个想法如何做到这一点?谢谢你。