如何使timeLog像Dlog(自定义xcode NSLog)?

时间:2011-09-14 04:04:52

标签: xcode customization nslog

基本上我想替换

的出现
Dlog ("Calling computeTime");
[Tools computeTime:^{...}];

更简单的事情,如

TimeLog {...};

我如何使用宏?

示例DLog是

#ifdef DEBUG
#define DLog( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
#define DLog( s, ... ) 
#endif

我有这样的功能

+(void) computeTime:(void (^)())block
{
    NSDate * currentTime = [NSDate date];
    block();
    DLog(@"Time Running is: %f", [[NSDate date] timeIntervalSinceDate:currentTime]);
}

这个函数没用,因为我不知道调用函数。我们如何决定呼叫功能?

我想使这个函数像定义Dlog

可能就是那样

#ifdef DEBUG
#define TimeLog {...} [Tools computeTime:^{...}];
#else
#define TimeLog {...} 
#endif

但它仍然是错误,任何人都可以帮我解决它?

所以我可以把时间日志称为 TimeLog {doSomething} 把它变成:     Dlog(“调用computeTime”);     [工具computeTime:^ {doSomething}];

宏会是什么?

我怎么能做得好?

1 个答案:

答案 0 :(得分:1)

如果您想将参数传递给MACROS,则应使用其他括号:()而不是{...}