Objective-C中的非成员函数

时间:2010-04-18 08:17:41

标签: c objective-c

我想在Objective-C中编写一个独立的函数;所以基本上是一个C风格的函数,其中有Objective-C调用。例如:

NSString* someFunc()
{
 NSString* str = [[NSString alloc] init];

 return str;
}

我在头文件中声明了该函数,并在其中定义了一个.m文件。但是,该函数似乎没有编译,因为链接器抱怨丢失的符号。我想也许我应该把它放在一个C文件中,但当然它在我身上骂我在BASI写的Objective-C Nonsense ... C。

做什么?

1 个答案:

答案 0 :(得分:3)

这对我来说是一个愚蠢的错误。该函数是在.m文件中定义的,但我试图在.mm文件(C ++ / Objective-C)中使用它,所以很自然地它正在寻找一个C ++ - 受损的符号。把

#ifdef __cplusplus
extern "C" {
#endif

// Declaration

#ifdef __cplusplus
}
#endif
头文件中的

修复了问题。