15
Продолжение с последнего вопроса здесь: Log method name in Obj-C. Я просто задавался вопросом, есть ли способ распечатать имя переменной. Например:Распечатайте переменную имя цель-C
NSString *name = "vodkhang";
NCLog(@"%@", name);
, и я надеюсь, что вывод должен быть:
name: vodkhang
Просто суммировать предыдущий пост, в настоящее время, я могу распечатать имя класса, имя метода и номер строки при Я называю
NCLog(@"Hello World");
<ApplicationDelegate:applicationDidFinishLaunching:10>Hello world
с
#define NCLog(s, ...) NSLog(@"<%@:%d> %@", __FUNCTION__, __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__])
Общий принцип заключается в том, что когда вы помещаете '#' перед аргументом в тело '# define', препроцессор заменяет его строкой C выражения * exact *, переданного макросу. Когда вы передадите имя переменной, вы получите это имя. Если вы передадите выражение, оно воспроизведет выражение полностью, а не результат вычисления. –
@Quinn: Я понял. Спасибо за это – vodkhang