В последний раз, когда я проверял, системные шрифты кэшировались (то есть, вызов [UIFont systemFontOfSize:foo]
дважды возвращал вам один и тот же объект). Я не уверен, как часто кэш сбрасывается, но было бы очень глупо не кэшировать шрифты, так как они создаются все время во время загрузки пера.
Конечно, если вы делаете это дважды в одной и той же функции, то кешировать ее в локальной переменной немного быстрее (и это уменьшает размер кода, поскольку вызовы метода Obj-C огромны!). Если вы делаете это время от времени в разных местах, это может не стоить усилий.
Тем не менее, вы можете захотеть получить доступ к шрифту через метод класса или метод "singleton" (например, [MyAppBranding titleFont]
или [[MyAppBranding currentBranding] titleFont]
). Это означает, что вы можете гораздо проще изменить используемый шрифт, добавить дополнительный уровень кэширования, если заметите, что это узкое место в производительности, и упростить * поддержку нескольких брендов.