我想在Objective-C中编写一个独立的函数;所以基本上是一个C风格的函数,其中有Objective-C调用。例如:
NSString* someFunc()
{
NSString* str = [[NSString alloc] init];
return str;
}
我在头文件中声明了该函数,并在其中定义了一个.m文件。但是,该函数似乎没有编译,因为链接器抱怨丢失的符号。我想也许我应该把它放在一个C文件中,但当然它在我身上骂我在BASI写的Objective-C Nonsense ... C。
做什么?
答案 0 :(得分:3)
这对我来说是一个愚蠢的错误。该函数是在.m文件中定义的,但我试图在.mm文件(C ++ / Objective-C)中使用它,所以很自然地它正在寻找一个C ++ - 受损的符号。把
#ifdef __cplusplus
extern "C" {
#endif
// Declaration
#ifdef __cplusplus
}
#endif
头文件中的修复了问题。