gpt4 book ai didi

objective-c - 声明具有两种类型的 typedef

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:09 30 4
gpt4 key购买 nike

我需要的是声明一个 C 函数,它接受 Objective-C“id”类型和“Class”类型作为参数,但没有别的。

考虑:

void 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;
}

关于objective-c - 声明具有两种类型的 typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10502978/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com