我需要的是减少一个C函数,该函数接受Objective-C'id'类型和'类'类型作为参数,但除此之外没有别的。声明一个具有两种类型的typedef
考虑:
空隙the_function(classorid theargument);
我想到了声明一个typedef来实现这个目的......这个东西既可以包含'id'指针,也可以包含'Class'值......然后我会弄清楚C函数的值是什么。
所以......有没有什么方法(或类型?)我可以使用它,让我实现这个目标?
谢谢。 :)
我需要的是减少一个C函数,该函数接受Objective-C'id'类型和'类'类型作为参数,但除此之外没有别的。声明一个具有两种类型的typedef
考虑:
空隙the_function(classorid theargument);
我想到了声明一个typedef来实现这个目的......这个东西既可以包含'id'指针,也可以包含'Class'值......然后我会弄清楚C函数的值是什么。
所以......有没有什么方法(或类型?)我可以使用它,让我实现这个目标?
谢谢。 :)
由于类本身由对象在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;
}
所以你想要一个参数可以是两种不同的类型之一?为什么?你想解决什么问题? –