我正在开发一个跨平台的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混合感到害怕?
答案 0 :(得分:3)
我认为<#const char *text#>
应为const char *text
。
Xcode的自动完成系统将<#
和#>
放在那里,应该删除。