Это один из тех ответов "все зависит".
Вызов NSLocalizedString включает в себя поиск в пакете. Эти поиски довольно быстрые, но не бесплатные. Кэширование этого возвращаемого значения или просто удобство вызова NSLocalizedString будет зависеть от того, как оно используется.
Если вы проходите возврат к
текстовое поле что-то вроде
UILabel или UITableViewCell, то
поиск будет происходить только тогда, когда вы
сначала установите свойство.
Если вы используете его в drawRect
позвоните, то поиск будет только
произойдет, когда ваш взгляд должен быть
перекрашивается, что может быть часто,
нечасто или никогда.
Если вы используете его в игровом интерфейсе, где
экран перерисовывается каждый кадр
затем для нескольких элементов пользовательского интерфейса эти
поиски могут происходить сотни
раз в секунду.
Я бы сказал, что для чего-то вроде # 3 вы должны начать с кэширования результатов.
Для остальных напишите их наиболее удобным для вас способом, и, если у вас есть проблемы с производительностью в вашем пользовательском интерфейсе, используйте инструменты, чтобы сузить причину. Если это NSLocalizedString, оптимизируйте его соответствующим образом.