基本上我想替换
的出现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}];
宏会是什么?
我怎么能做得好?
答案 0 :(得分:1)
如果您想将参数传递给MACROS
,则应使用其他括号:()
而不是{...}
。