0

我正在开发一个跨平台的 C++ 应用程序。在 mac 版本上,我需要在 obj-c 中使用一点可可。因此,我创建了一个名为 OSXSpecifics 的类,它具有 .mm 文件扩展名和一个 c++ 标头,就像应用程序的其余部分一样。

std::string OSXSpecifics::GetOSXFilePath(const char *name, const char *type) {
return [[[NSBundle mainBundle] pathForResource:[NSString stringWithUTF8String: name]
                                        ofType:[NSString stringWithUTF8String: type]] UTF8String];

}

上面的代码绝对完美。c++ 类中的 c++ 函数,函数内部带有 Objective-c。但是当我这样做时:

void OSXSpecifics::printToConsole(<#const char *text#>) {
NSString *Text = [NSString stringWithUTF8String: text];

}

我有几个错误。主要是:variable has incomplete type 'void。我也得到expected primary expression before '<'token。而且也很有趣:expected ';' after top level declarator。这是该类的头文件:

#ifndef OSXSPECIFICS_h
#define OSXSPECIFICS_h

#include <string.h>

class OSXSpecifics
{
public:
    static std::string GetOSXFilePath(const char* name, const char* type);
    static void printToConsole(const char* text);
};

#endif // OSXSPECIFICS_h

知道为什么 xcode 对 c++ 和客观 c 混合感到恐惧吗?

4

1 回答 1

3

我认为<#const char *text#>应该是const char *text

和被 Xcode 的自动完成系统放在那里,应该被删除<##>

于 2012-10-06T06:37:08.810 回答