我需要的是缩小一个C函数,该函数同时接受Objective-C'id'类型和'Class'类型作为参数,但没有别的。
考虑:
void the_function(classorid theargument);
我想到声明一个typedef来实现这个目的......可以保存'id'指针或'Class'值...然后我会弄清楚我的C函数是什么值。
所以...有什么方法(或类型?)我可以使用它让我实现这个目标?
感谢。 :)
答案 0 :(得分:1)
答案 1 :(得分:1)
由于类本身由ObjC中的对象表示,而id
是“通用对象”类型,因此实际上可以使用id
作为指向类的指针的类型。使用id
参数定义函数将允许您传入实例和Class
对象。你在这个功能中使用它们(你将如何区分它们)是你的事。
static void doThatThingYouDo(id obj) {
NSLog(@"%@", obj);
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
Class c = [NSString class];
NSString * s = @"Rigatoni";
id ci = c;
doThatThingYouDo(c);
doThatThingYouDo(s);
}
return 0;
}