как сделать timeLog как Dlog (настроить xcode NSLog)? - PullRequest
0 голосов
/ 14 сентября 2011

В основном я хочу заменить вхождения

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 Ответ

1 голос
/ 14 сентября 2011

Если вы хотите передать параметры в MACROS, вам следует использовать другие скобки: () не {...}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...