gpt4 book ai didi

objective-c - 有什么方法可以用预处理器替换部分单词吗?

转载 作者:太空狗 更新时间:2023-10-30 03:54:12 24 4
gpt4 key购买 nike

我的 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 名称。

关于objective-c - 有什么方法可以用预处理器替换部分单词吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10423620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com