引用可能定义或不定义的变量的预处理器宏

时间:2012-12-31 11:05:00

标签: ios objective-c xcode macos c-preprocessor

我有两个预处理器宏,可以在调用方法时记录。一个宏只记录方法的名称;我用于UITableViewDelegate方法的另一个宏来记录方法的名称和参数indexPath的值(带有两个索引的NSIndex *)。

#define LogMethodName  \
    { NSLog(@"%s", __PRETTY_FUNCTION__) ; }
#define LogMethodNameAndIndexPath  \
    { NSLog(@"%s  {%lu, %lu}", __PRETTY_FUNCTION__, [indexPath indexAtPosition:0] , [indexPath indexAtPosition:1] ) ; }

我怀疑这是可能的,但我想要一个宏来完成这两个工作:当在具有indexPath参数的方法中使用时,它会执行类似于{{的代码1}},当在缺少LogMethodNameAndIndexPath参数的方法中使用(因此indexPath未定义)时,它会执行indexPath之类的代码。

这可能吗?我已经查看了几十个Stack Overflow问题,但我还没有找到一个我能理解的答案。我已经尝试过下面看到的代码,但是当我在第4行中引用LogMethodName时Xcode不喜欢它,如果以前没有定义过,并且没有办法让Xcode放心,我会要求它只执行第4行当indexPath被定义时。

indexPath

0 个答案:

没有答案
相关问题