tt.*_*lew 5 iphone private localizable.strings ios
假设我们可以在运行时更改Localizable.strings,它放在NSBundle中.在当前时刻,即使我们更改它的内容,NSLocalizedString也会返回旧的(缓存)值.
我已经尝试过的:
我不能做什么(根据定义): - 我不能调和[NSBundle localizableStringForKey:value:table] - 我不能改变宏 - 一般来说,我不能影响任何原始项目代码,只在第4步添加一些东西
这仅用于开发目的.所以,我不需要在AppStore中发布它,所以任何私有方法或解决方案都可以.
所以,问题是.可能有人知道这样做的方法,还是有人给我另一个想法怎么做呢?谢谢.
注意:此解决方案使用私有 API,如果您使用此代码,您向 App Store 提交的应用程序将被拒绝。
因此,经过一番搜索后,我找到了对我有帮助的链接
// First, we declare the function. Making it weak-linked
// ensures the preference pane won't crash if the function
// is removed from in a future version of Mac OS X.
extern void _CFBundleFlushBundleCaches(CFBundleRef bundle)
__attribute__((weak_import));
BOOL FlushBundleCache(NSBundle *prefBundle) {
// Before calling the function, we need to check if it exists
// since it was weak-linked.
if (_CFBundleFlushBundleCaches != NULL) {
NSLog(@"Flushing bundle cache with _CFBundleFlushBundleCaches");
CFBundleRef cfBundle =
CFBundleCreate(nil, (CFURLRef)[prefBundle bundleURL]);
_CFBundleFlushBundleCaches(cfBundle);
CFRelease(cfBundle);
return YES; // Success
}
return NO; // Not available
}
Run Code Online (Sandbox Code Playgroud)
刷新包缓存后,将使用新的本地化密钥。因此,现在我不需要在模拟器中重新启动应用程序即可查看可本地化字符串的更改。
| 归档时间: |
|
| 查看次数: |
1395 次 |
| 最近记录: |