2012-03-03 77 views
0

我正在嘗試在Objective-C中創建一個函數,它將採用__FILE__和_cmd作爲參數來爲Flurry日誌記錄事件做好準備。傳遞__FILE__宏作爲參數

這是我的函數簽名:

NSDictionary *prepareFailedRequestData(ASIFormDataRequest *request, char file, SEL method);

我不知道什麼類型的「文件」參數作爲。基於我發現的一些文檔,我嘗試了'unsigned char',但是,以及我目前的實現中,拋出編譯器警告並導致程序崩潰。

如果'file'將是__FILE__宏的輸出,我該如何輸入我的參數?

謝謝!

回答

1
//You would need to do something like this 
const char *currentFile=__FILE__; 

是一個常量字符串,從Apple documentation

這宏展開爲當前輸入文件的名稱,格式爲C字符串常量 。這是預處理程序 打開文件的路徑,而不是`#include'中指定的短名稱或 輸入文件名稱參數。例如,「/usr/local/include/myheader.h」 是該宏的一種可能的擴展。

3

__FILE__擴展爲一個字符串,像"MyFile.m",所以你通常會使用const char *作爲類型:

NSDictionary *prepareFailedRequestData(ASIFormDataRequest *request, 
    const char *file, SEL method); 
+0

恰恰如此。邏輯建議該文件將是一個字符串(在這種情況下是c風格的字符串)與名稱/路徑+文件的名稱。單個字符很好,'A'或類似字符。 char *或char []會起作用(我不確定Objective-C是否可以使用char [],所以char *最好是^^) – 2012-03-03 03:43:16