Нет, предупреждение касается вызова метода. Похоже, ошибка связана с макросом, потому что вы просматриваете код до того, как препроцессор с ним поработал, но компилятор указывает на ту же строку, постобработку.
Вы объявили, что этот метод принимает один аргумент, но вы передаете его больше, чем это.
ECLog(@"test %@", someString);
переписывается препроцессором в:
[ECLogger logText:@"test %@", someString];
Это буквальный текст, который теперь передается компилятору, как если бы вы печатали его таким образом. Метод объявлен как принимающий один NSString
, но вы передаете ему две вещи. Вам нужно изменить объявление метода:
+ (void) logText: (NSString *)theString, ...;