我的 Objective-C 课上有类似的东西
@interface PREFIX_MyClass {
...
@end
我想使用预处理器将其转换为:
@interface AwesomeMyClass {
...
@end
所以像
#define PREFIX_ Awesome
不起作用,因为它是单词的一部分。还有其他办法吗?我知道我可以使用这样的东西:
#define PrefixClass(NAME) Awesome##NAME
@interface PrefixClass(MyClass)
但我不喜欢这个,因为它破坏了开发工具中的代码完整和参考(即:本例中的 Xcode)
这不是很优雅,但您可以使用预处理器来替换整个类名而不是部分类名。
#define PREFIX_MyClass AwesomeMyClass
@interface PREFIX_MyClass
当然,如果您多次使用前缀并且它发生变化,这就会成为一个问题。您可以通过使用另一个宏调用另一个宏来添加前缀来解决此问题,以便只有一个宏包含实际的前缀。
#define ADD_PREFIX(name) Awesome##name
#define PREFIX_MyClass ADD_PREFIX(MyClass)
@interface PREFIX_MyClass
这仍然需要一个宏来表示您想要添加前缀的所有内容,但是代码完成将识别PREFIX_MyClass
name.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)