2011-09-14 6 views
0

は基本的に私はDiggのようにtimeLogを作る方法(xcode NSLogをカスタマイズする)?

TimeLog {...}; 

どのように私はそのためのマクロを使用することができますのような単純なもので

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

の回出てくる交換したいですか?

例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

MACROSにパラメータを渡す場合は、()ではなく{...}の別の角括弧を使用する必要があります。

+0

どうすればいいですか? –

関連する問題