Objective C 预处理器:获取当前类
有没有办法获取预处理器中当前作用域的类?
目前,我正在做的事情如下:
我有一个宏:
#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 中可以使用预处理器?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不明白你想要实现什么目标。为什么不直接向 NSObject 添加一个类别,例如:
您是否特别希望由预处理器来完成此操作?
I don't get what you're trying to accomplish. Why not just add a category to NSObject, like:
Is there some reason why you want this to be done by the preprocessor in particular?
有一个新的关键字
instancetype
,也许可以帮助您;更多信息请此处。对于你的例子:There's a new keyword,
instancetype
, that perhaps could help you; more here. For your example: