gpt4 book ai didi

objective-c - Objective-C 预处理器 : Getting current class

转载 作者:太空狗 更新时间:2023-10-30 03:53:41 27 4
gpt4 key购买 nike

有没有办法在预处理器中获取当前作用域的类?

目前,我正在做的是:

我有一个宏:

#define DATA_SOURCE_DEF_CONSTR(CLASS) + (CLASS *)dataSource { \
CLASS *source = [[[CLASS alloc] init] autorelease]; \
return source; \
}

然后我在很多类中使用该宏,例如:

DATA_SOURCE_DEF_CONSTR(SpecialDataSource)

我想要这样的东西:

#define DATA_SOURCE_DEF_CONSTR + (__CLASS__ *)dataSource { \
__CLASS__ *source = [[[__CLASS__ alloc] init] autorelease]; \
return source; \
}

然后这样调用它:

@implementation ...

DATA_SOURCE_DEF_CONSTR

...

@end

在带有预处理器的 Objective-C 中这可能吗?

最佳答案

我不明白你想要完成什么。为什么不直接向 NSObject 添加一个类别,例如:

@implementation NSObject (handyConstructor)

+ autoreleasedInstance { return [[[self class] alloc] init] autorelease]; }

@end

您有什么理由特别希望预处理器来完成这项工作吗?

关于objective-c - Objective-C 预处理器 : Getting current class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5765643/

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