一千萬個為什麽

搜索

Objective-C中的非成員函數

我想在Objective-C中編寫一個獨立的函數;所以基本上是一個C風格的函數,其中有Objective-C調用。例如:

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

 return str;
}

我在頭文件中聲明了該函數,並在其中定義了一個.m文件。但是,該函數似乎沒有被編譯,因為鏈接器抱怨丟失的符號。我想也許我應該把它放在一個C文件中,但當然它在我身上罵我在BASI寫的Objective-C Nonsense ... C.

做什麽?

最佳答案

這對我來說是一個愚蠢的錯誤。該函數是在.m文件中定義的,但我試圖在.mm文件(C ++/Objective-C)中使用它,所以很自然地它正在尋找一個C ++ - 受損的符號。把

#ifdef __cplusplus
extern "C" {
#endif

// Declaration

#ifdef __cplusplus
}
#endif

在頭文件中修復問題。

轉載註明原文: Objective-C中的非成員函數