gpt4 book ai didi

c++ - 从 C++ 调用 Objective-C 类方法

转载 作者:太空狗 更新时间:2023-10-29 23:41:41 25 4
gpt4 key购买 nike

我在从 C++ 文件调用 Objective-C 类方法时遇到了一些问题。示例:

在我的 .h 中:

@interface MyClass : NSObject {
}
+ (void)myMethod:(NSString *)str;

在我的 .m 中:

+ (void) myMethod:(NSString *)str { ... }

在我的.cpp 中:

??

既然没有类实例,你怎么能调用 myMethod 呢?它本质上是静态的?

谢谢

最佳答案

C++ 中的对象与 Objective-C 中的对象不兼容。您不能简单地从 C++ 调用 Objective-C 方法。

但是有一些解决方案:

  1. 使用 Objective-C++。将您的 .cpp 重命名为 .mm,然后您可以在 C++ 代码中使用 Objective-C 语法:[FlurryAnalytics myMethod: @"foo"];

  2. 直接调用 Objective-C 运行时系统。我不会告诉你怎么做,因为我真的认为你不应该,事实上你也不想。

  3. 编写纯 C 接口(interface)。也就是说,在某些 .m 文件中,定义 void myFunction(const char *str) { ... } 并从 C++ 调用它。您可以找到此 here 的示例.

关于c++ - 从 C++ 调用 Objective-C 类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8851789/

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