过去,使用objective-c,我的本地化类使用宏从变量名生成密钥。目的是允许自动完成,删除添加评论的必要,提供一种在代码中添加基本语言的简单方法,并将键值对保存在一个地方。它类似于以下内容:
Localize(_theKey, "The default string")
Localize
是预处理器宏的地方:
#define GenerateKey(key) [NSString stringWithFormat:@"%@.%@", CapitalizedClassName, [(@"" #key) substringFromIndex:1]]
#define Localize(key, defaultValue) key = NSLocalizedStringWithDefaultValue(GenerateKey(key), DefaultTable, DefaultBundle, defaultValue, DefaultComment)
最终,这会产生一个像这样初始化的属性:
_theKey = NSLocalizedStringWithDefaultValue("Localization.Generic.theKey", DefaultTable, DefaultBundle, "The default string", "")
我可以使用
访问整个代码中的本地化字符串[Localization Generic].theKey
我知道预处理器在Swift中不可用,但有没有办法实现同样的目的?
TL; DR;有没有什么办法可以使用宏 1 来使用变量名来在Swift中生成代码?
我希望答案是"否"。但如果我错了,我会感到惊喜!
1.由于缺乏更好的术语,任何解决方案都是好的! 功能