Лично мне не нравится смешивать оценку на макро / препроцессорном уровне и тест на уровне компиляции.
Кажется, что нет стандартного способа сделать это на макроуровне, но здесь есть хаки: C ++ препроцессор __VA_ARGS__ количество аргументов
Это - один из тех, "он зависит" ответы.
Вызов NSLocalizedString вовлекает выполнение поиска в пакет. Эти поиски являются довольно быстрыми, но не бесплатными. Кэшировать ли это возвращаемое значение или просто иметь удобство вызова NSLocalizedString, будет зависеть от того, как это используется.
При передаче возврата текстовому полю чего-то как UILabel или UITableViewCell затем, поиск только произойдет когда Вы первый набор свойство.
При использовании его в вызове drawRect затем, поиск только произойдет, когда представление должно будет быть перекрашено, который мог быть часто, нечасто, или никогда.
Если Ваше использование его в игре UI, где экран перерисовывается каждый кадр затем для нескольких элементов UI эти поиски, могло происходить сотни времен каждую секунду.
Я сказал бы, что для чего-то как № 3 необходимо запустить с кэширования результатов.
Для других запишите им в способе, которым это является самым удобным и если у Вас есть проблемы производительности в Ваших Инструментах использования UI для сужения причины. Если это - NSLocalizedString, затем оптимизируют его соответственно.
Я подозреваю, что Вы не получаете слишком много удара производительности. NSLocalizedString (ключ, комментарий) является макросом, который преобразовывает в
[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]
Без сравнительного тестирования я понятия не имею, насколько дорогой это, но я подозреваю, что это не слишком плохо. Мое чувство состоит в том, что это не будет узким местом производительности для Вас, но можно всегда выполнять Акулу или Инструменты и лично убеждаться при запуске приложения на устройстве.
Микрооптимизация. Сначала заставьте его работать, затем сделать его правом, затем сделать его быстро. И когда Вы добираетесь до шага 3, выполняете Акулу (или Инструменты), затем следуете за ее руководством.