2

我需要的是声明一个 C 函数,它同时接受 Objective-C 'id' 类型和 'Class' 类型作为参数,但仅此而已。

考虑:

void the_function(classorid theargument);

我想声明一个 typedef 来实现这个目的......可以保存“id”指针或“类”值的东西......然后我会弄清楚我的 C 函数的值是什么。

那么......有什么方法(或类型?)我可以使用它来实现这个目标吗?

谢谢。:)

4

2 回答 2

1

工会可能会有所帮助。

http://www.anyexample.com/programming/cplusplus/example_of_using_union_in_cplusplus.xml

于 2012-05-08T17:00:45.700 回答
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;
}
于 2012-05-08T17:46:28.173 回答