传递__FILE__宏作为参数

时间:2012-03-03 02:20:53

标签: iphone objective-c ios macros

我正在尝试在Objective-C中创建一个函数,该函数将__FILE__和_cmd作为参数来为Flurry日志记录事件做好准备。

这是我的功能签名:

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

我不确定输入'file'参数是什么。我根据我发现的一些文档尝试了'unsigned char',但是,除了我当前的实现之外,还会抛出编译器警告并导致程序崩溃。

如果'file'是__FILE__宏的输出,我该如何输入我的参数?

谢谢!

2 个答案:

答案 0 :(得分:3)

__FILE__扩展为文字字符串,例如"MyFile.m",因此您通常会使用const char *作为类型:

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

答案 1 :(得分:1)

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

来自Apple documentation

的常量字符串
  

此宏扩展为表单中当前输入文件的名称   一个C字符串常量。这是预处理器的路径   打开文件,而不是`#include'中指定的短名称或   输入文件名参数。例如,“/ usr / local / include / myheader.h”   是这个宏的可能扩展。