ios - NSLocalizedStringFromTableInBundle 在 NSObject 类中调用时给出属性列表错误

标签 ios objective-c

我已经为几种语言创建了自己的可本地化字符串文件 (XYZLocalized.strings) 并将它们添加到 bundle 中。我可以使用以下行获取 UIViewController 类中的字符串:

NSLocalizedStringFromTableInBundle(@"xyz_plugin_title", @"XYZLocalized", [XYZPluginDelegate 包], 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 对使用位置有任何限制吗?

我已经浪费了好几天的时间试图找到此构建失败的根本原因并修复它。如果有人可以帮助解决这个问题,我将非常感激。

提前致谢。

最佳答案

我能够通过将包含不稳定代码的方法设置为静态方法而不是类方法来找到解决方法。

尽管目前还不清楚为什么类方法不起作用。

关于ios - NSLocalizedStringFromTableInBundle 在 NSObject 类中调用时给出属性列表错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55064168/

相关文章:

ios - 如何比 scrollviewdid 滚动更快地跟踪 uiscrollview 偏移量?

iphone - 未找到 AVFoundation/AVCaptureDevice.h

ios - Execution_BAD-ACCESS 删除数据时

ios - 如果我想跟踪移动,是否必须使用 UIPanGestureRecognizer 而不是 UISwipeGestureRecognizer?

ios - 如何在 iPhone 上使用 SSH

objective-c - 如何将 JavaScript 回调函数传递给 Cocoa/Obj-C?

objective-c - 数据序列化

ios - 在 Swift 中使用 CCCrypt (CommonCrypt) 的问题

ios - 如何在重新加载单元格后保留单元格中的 ScrollView 内容偏移量

ios - 从 iOS 的 Compression_encode_buffer 解码 LZ4 输出