Я хочу записать автономную функцию в Objective C; таким образом, по существу функция C-стиля, с Objective C звонит в него. Например:
NSString* someFunc()
{
NSString* str = [[NSString alloc] init];
return str;
}
Я объявляю функцию в заголовочном файле и определяю в ней.m файл. Однако функция, кажется, не компилируется в, поскольку компоновщик жалуется на отсутствующий символ. Я думал, что, возможно, должен поместить его в файл C, но затем конечно, это плевало на меня для записи Ерунды Objective C в BASI... C.
Что делает?
Это оказалось глупая ошибка с моей стороны. Функция была определена в файле .m, но я пытался использовать ее в файле .mm (C ++ / Objective-C), поэтому, естественно, он искал искаженный символ C ++. Размещение
#ifdef __cplusplus
extern "C" {
#endif
// Declaration
#ifdef __cplusplus
}
#endif
в файле заголовка устраняет проблему.