Я создал свои собственные локализуемые строковые файлы для нескольких языков (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
какие-либо ограничения на то, где его можно использовать?
Я уже потратил немало дней, пытаясь найти причину этой ошибки сборки и исправить ее. Я был бы очень признателен, если бы кто-то мог помочь исправить это.
Заранее спасибо.