0

我目前正在尝试使用V 编程语言,并查看了一些我想尝试的有趣的东西。我想知道的一件事是,我是否可以在不编译单个.m文件的情况下从纯 C 调用 Objective-C 方法。

既然 Python 可以用 pyobjc 做到这一点,我想知道我是否可以让它在 V 中工作?

想象一下以下非常粗糙的代码:

@implementation Foo

- (id) greet: (char*)me {
  printf("Hello %s!", me);
}

@end

现在,我知道objc_sendMsg我可以发送消息 - 但我如何首先创建正确的实例?

4

1 回答 1

1

它看起来像这样:

Class fooClass = objc_lookUpClass("Foo");
id obj = class_createInstance(fooClass, 0);
SEL initSelector = sel_registerName("init");
((id (*)(id, SEL))objc_msgSend)(obj,initSelector);
于 2021-10-30T19:19:46.803 回答