gpt4 book ai didi

从 C 调用 Cocoa API

转载 作者:行者123 更新时间:2023-11-30 16:31:20 26 4
gpt4 key购买 nike

我不知道这是否可行,但是如果有纯 C 代码,是否可以从中调用 Cocoa API?
类似 #include <cocoa.h> ,添加相应的库就可以了吗?

感谢您的帮助

最佳答案

如果链接到 Cocoa 或 Foundation 框架,则可以在 C 代码中使用 Objective-C。但是,如果您想使用正常的消息语法,则必须将文件扩展名从 .c 更改为 .m,以便将其编译为 Objective-C。如果保留 .c 扩展名,则只能使用 c 样式运行时调用与目标对象交互(即 objc_msgSend 、 objc_getClass 等) .

示例:.m 文件内

void cFunction() {
[[NSString alloc] init];
}

在 .c 文件内

void cFunction() {
void* cls = objc_getClass("NSString");
void* obj = objc_msgSend(cls, NSSelectorFromString(CFSTR("alloc")));
obj = objc_msgSend(obj, NSSelectorFromString(CFSTR("init")));
}

如果您选择第二种方法,请参阅Objective-C Runtime Reference .

关于从 C 调用 Cocoa API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50662715/

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