Рассмотрим следующий вызов:Ошибка в анализе функций, подобных функциям Clang с вызовом метода Variative A Objective C?
NSString* localized = NSLocalizedString([NSString stringWithFormat:@"Hello %@", @"World"], @"");
Что случилось с ним? Я ничего не вижу по своей сути неправильно, но компилятор/препроцессор жалуется, что к нему было передано слишком много параметров. С другой стороны, следующие две компиляции:
Явная переменная:
NSString* string = [NSString stringWithFormat:@"Hello %@", @"World"];
NSString* localized = NSLocalizedString(string, @"");
Wrap в скобках:
NSString* localized = NSLocalizedString(([NSString stringWithFormat:@"Hello %@", @"World"]), @"");
Похоже препроцессор/компилятор неправильно разбирает ,
характер.
Я получаю это в Xcode 7 beta 6, так что это может быть новая ошибка в инструментальной цепочке Clang.
Файл с сообщением об ошибке с Apple. – rmaddy
@rmaddy Я сделал, # 22418824 –
BTW - не должен быть первым параметром для 'NSLocalizedString' быть строковым литералом? Помните, что вы используете инструмент командной строки 'gestrings' для создания локализованного файла строк. Это означает, что он просто анализирует файлы исходного кода. Нет смысла определять ваши ключи на основе значения времени выполнения. – rmaddy