【问题标题】:Print out the variable name objective-C打印出变量名objective-C
【发布时间】:2010-05-12 12:01:14
【问题描述】:

从这里的最后一个问题继续:Log method name in Obj-C。我只是想知道是否有办法打印出变量名。例如:

NSString *name = "vodkhang";
NCLog(@"%@", name);

我希望输出应该是:

name: vodkhang

简单总结一下之前的帖子,目前我可以在调用的时候打印出类名、方法名和行号

NCLog(@"Hello World");
<ApplicationDelegate:applicationDidFinishLaunching:10>Hello world

与

#define NCLog(s, ...) NSLog(@"<%@:%d> %@", __FUNCTION__, __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__])

【问题讨论】:

    标签: iphone objective-c debugging


    【解决方案1】:
    #define logIntVariable(x) NSLog( @"Value of %s = %d",#x, x)
    
    
    - (void) myRoutine {
       int intValue = 5;
    
       logIntVariable(intValue);
    }
    

    【讨论】:

    • 一般原则是,当您将# 放在#define 主体内的参数前面时,预处理器会将其替换为exact 的C 字符串i> 表达式传递给宏。当您传递一个变量名称时,您将获得该名称。如果您传递一个表达式,它将完整地再现该表达式,而不是计算结果。
    • @Quinn:我明白了。谢谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多