从Objective C调用C ++

摇滚宝贝

我在从Objective-C的C ++中调用某些函数时遇到问题。我有以下代码。在“ objCFuncA”中,如何调用“ funcBCallback(std :: string inText)”函数?谢谢

SampleCallback.h

class SampleCallback
{
public:
    static void funcA();
    static void funcBCallback(std::string inText);
};

SampleCallback.mm

void SampleCallback::funcA()
{
    [[SampleCallback_iOS shared] objCFuncA:"My text from C++"];
}

void SampleCallback::funcBCallback(std::string inText)
{
    NSLog(@"SUCCES GET RETURN");
}

SampleCallback_iOS.h

@interface SampleCallback_iOS : NSObject

+ (SampleCallback_iOS*)shared;

- (void)objCFuncA:(const char*)inString;

@end

SampleCallback_iOS.m

@implementation SampleCallback_iOS

static SampleCallback_iOS* instance = nil;

+ (SampleCallback_iOS*)shared
{
    @synchronized(self) {
        if (instance == nil) {
            instance = [[self alloc] init];
        }
    }
    return instance;
}

- (void)objCFuncA:(const char*)inString
{
    NSLog(@"Text from C++: %s", inString);

    // How to call SampleCallback::funcBCallback?
}
@end
尼古拉·鲁厄

无法从普通的Objective-C调用C ++函数(就像您不能从普通的C调用C ++)一样。

不过,您可以将Objective-C文件转换为Objective-C ++。为此,只需将文件重命名为使用扩展名.mm而不是.m

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章