有没有办法使用变量名在Swift中生成代码?

时间:2016-12-09 16:01:04

标签: objective-c swift macros c-preprocessor

过去,使用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.由于缺乏更好的术语,任何解决方案都是好的! 功能

0 个答案:

没有答案