我需要的是声明一个 C 函数,它同时接受 Objective-C 'id' 类型和 'Class' 类型作为参数,但仅此而已。
考虑:
void the_function(classorid theargument);
我想声明一个 typedef 来实现这个目的......可以保存“id”指针或“类”值的东西......然后我会弄清楚我的 C 函数的值是什么。
那么......有什么方法(或类型?)我可以使用它来实现这个目标吗?
谢谢。:)
我需要的是声明一个 C 函数,它同时接受 Objective-C 'id' 类型和 'Class' 类型作为参数,但仅此而已。
考虑:
void the_function(classorid theargument);
我想声明一个 typedef 来实现这个目的......可以保存“id”指针或“类”值的东西......然后我会弄清楚我的 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;
}