Obj-C, пытаюсь написать альтернативу NSLog, но я хочу, чтобы моя функция конкатенировалась как NSLog? - PullRequest
1 голос
/ 01 февраля 2011

Я решил, что будет проще, если я заменю свои вызовы NSLog другой функцией ....

+(void)logThis:(NSString*)line{ 

#ifdef DEBUG 
NSLog(line); 
#endif  

}

Однако мне придется заменить 215 вызовов NSLog, это будетнамного быстрее, если бы моя функция принимала несколько параметров, таких как NSLog, все, что мне нужно было бы сделать, это найти и заменить NSLog именем / классом моей функции, а затем добавить дополнительную квадратную скобку в квадратную скобку.теперь я могу добавить принятие таких параметров в свою функцию?

ИЛИ более быстрое / лучшее решение, которое не означало бы добавление большего количества строк кода вместо NSLog?

Ответы [ 2 ]

1 голос
/ 01 февраля 2011

Что вам нужно, это переменная функция .Эти функции принимают гибкое количество аргументов, например NSLog, [NSArray arrayWithObjects:...] и т. Д.

См. Это руководство:

http://www.numbergrinder.com/node/35

0 голосов
/ 01 февраля 2011

Как насчет создания макроса "NSLOG_IF_DEBUGGING", который расширяется до "NSLog" или "(void)", в зависимости от того, является ли это отладочной сборкой? Тогда вы просто глобально замените все ваши вызовы NSLog на NSLOG_IF_DEBUGGING.

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