Я создал собственный класс ведения журнала, который регистрирует определенные вещи в файле. Я пытаюсь сделать макрос, чтобы я мог использовать свой пользовательский класс так же, как NSLog()
, но он, похоже, не работает правильно.Пользовательский макрос регистрации не принимает несколько аргументов
Вот как я определяю макрос:
#define ECLog(fmt, ...) [ECLogger logText:fmt, ## __VA_ARGS__]
logText:
объявлен как это:
+ (void)logText:(NSString *)theString;
Если бы я только передать один аргумент, он отлично работает. Как это:
ECLog(@"test");
Но если я прохожу еще один аргумент, как это:
ECLog(@"test %@",someString);
Я получаю сообщение об ошибке, что он только ожидает один аргумент.
Любые идеи?
Вы получаете эту ошибку о вызове метода, а не макросе, не так ли? Как объявляется 'logText:'? –
Да, о макросе. Я обновил свое сообщение, показывая, как объявлен «logText:». – edc1591