我已经为几种语言创建了自己的可本地化字符串文件(XYZLocalizable.strings
),并将它们添加到包中。我可以使用下面的代码行来获取UIViewController类中的字符串:
NSLocalizedStringFromTableInBundle(@"xyz_plugin_title", @"XYZLocalizable", [XYZPluginDelegate bundle], nil);
但是如果我在NSObject类中添加下面这一行,整个构建就会失败:
@interface XYZStringResourceUtil : NSObject
+ (NSString *) getLocalizedString:(NSString *) stringKey;
.
.
@end
@implementation XYZStringResourceUtil
+ (NSString *) getLocalizedString:(NSString *) stringKey {
NSLocalizedStringFromTableInBundle(stringKey, @"XYZLocalizable", [XYZPluginDelegate bundle], nil);
}
.
.
@end
我得到的错误是:
../DerivedData/XXXXXX/Build/Intermediates.noindex/YYYY.build/Debug-iphonesimulator/ZZZZZ.build/Localization/en.lproj/XYZLocalizable.strings: Unexpected character ? at line 1
../DerivedData/XXXXXX/Build/Intermediates.noindex/YYYY.build/Debug-iphonesimulator/ZZZZZ.build/Localization/en.lproj/XYZLocalizable.strings: Property List error: Unexpected character ? at line 1 / JSON error: JSON text did not start with array or object and option to allow fragments not set.
奇怪的是,即使我从磁盘中删除了.strings
文件,也会弹出错误。只有当我从NSObject类中删除行时,构建才会通过。
NSLocalizedStringFromTableInBundle
对它的使用有什么限制吗?
我已经浪费了相当多的时间来试图找到这个构建失败的根本原因并修复它。如果有人能帮我解决这个问题,我将不胜感激。
提前谢谢。
转载请注明出处:http://www.intrusion-fire.net/article/20230526/1680862.html